如何处理重复的玩家名字 SQL
How to deal with repeating player names SQL
我正在处理来自 Basketball-Reference.com 的数据集。我收集了一个赛季的统计数据。然而,球员在整个赛季都会被交易,所以我有 2 或 3 排球员而不是 one。我想将这些多行平均为一行,以便每个玩家只有一行。到目前为止,我已经尝试使用 WITH 函数:
WITH `bgdefense.Season2122.pergame2122` AS (
SELECT 'Nickeil Alexander-Walker' Player, 'SG' Pos, 'TOT' Tm, 2.3 DRB, 0.7 STL, 0.4 BLK UNION ALL
SELECT 'Nickeil Alexander-Walker', 'SG', 'NOP', 2.6, 0.8, 0.4 UNION ALL
SELECT 'Nickeil Alexander-Walker', 'SG', 'UTA', 1.6, 0.4, 0.3
)
SELECT
Player,
Pos,
Tm,
AVG(DRB),
AVG(STL),
AVG(BLK)
FROM `bgdefense.Season2122.pergame2122`
当我 运行 这段代码时,我得到一个未分组或聚合的 error。所以,我真的不确定从这里去哪里。我想保持球员的名字和位置不变,同时只选择一支球队(赛季开始时他所在的那支球队。然后,我想平均篮板,抢断等。我也有这样的想法我应该 select 一行并删除倍数。感谢任何输入。我正在为此使用 BigQuery。
在SQL中,每当我们做一些聚合时,按某些东西分组是很重要的。考虑计算美国各州全年平均气温的示例。每个州都包含多天的数据,如果要计算平均值,则需要对 US states
进行分组,然后计算平均值。它类似于 excel.
中枢轴函数在某种意义上的运作方式
当您测量每个玩家的这些平均值时,您可以稍微调整此查询并获得结果。
WITH `bgdefense.Season2122.pergame2122` AS (
SELECT 'Nickeil Alexander-Walker' Player, 'SG' Pos, 'TOT' Tm, 2.3 DRB, 0.7 STL, 0.4 BLK UNION ALL
SELECT 'Nickeil Alexander-Walker', 'SG', 'NOP', 2.6, 0.8, 0.4 UNION ALL
SELECT 'Nickeil Alexander-Walker', 'SG', 'UTA', 1.6, 0.4, 0.3
)
SELECT
Player,
Pos,
AVG(DRB),
AVG(STL),
AVG(BLK)
FROM `bgdefense.Season2122.pergame2122`
group by Player, Pos
请注意我没有在 group by
子句中使用 Tm
列。这将取决于您想要的用例 group by
。我的查询在 player,position
聚合级别计算指标的平均值。
注意 - 我在这里假设 Tm 表示团队,每个玩家将参加不同的团队。
我正在处理来自 Basketball-Reference.com 的数据集。我收集了一个赛季的统计数据。然而,球员在整个赛季都会被交易,所以我有 2 或 3 排球员而不是 one。我想将这些多行平均为一行,以便每个玩家只有一行。到目前为止,我已经尝试使用 WITH 函数:
WITH `bgdefense.Season2122.pergame2122` AS (
SELECT 'Nickeil Alexander-Walker' Player, 'SG' Pos, 'TOT' Tm, 2.3 DRB, 0.7 STL, 0.4 BLK UNION ALL
SELECT 'Nickeil Alexander-Walker', 'SG', 'NOP', 2.6, 0.8, 0.4 UNION ALL
SELECT 'Nickeil Alexander-Walker', 'SG', 'UTA', 1.6, 0.4, 0.3
)
SELECT
Player,
Pos,
Tm,
AVG(DRB),
AVG(STL),
AVG(BLK)
FROM `bgdefense.Season2122.pergame2122`
当我 运行 这段代码时,我得到一个未分组或聚合的 error。所以,我真的不确定从这里去哪里。我想保持球员的名字和位置不变,同时只选择一支球队(赛季开始时他所在的那支球队。然后,我想平均篮板,抢断等。我也有这样的想法我应该 select 一行并删除倍数。感谢任何输入。我正在为此使用 BigQuery。
在SQL中,每当我们做一些聚合时,按某些东西分组是很重要的。考虑计算美国各州全年平均气温的示例。每个州都包含多天的数据,如果要计算平均值,则需要对 US states
进行分组,然后计算平均值。它类似于 excel.
当您测量每个玩家的这些平均值时,您可以稍微调整此查询并获得结果。
WITH `bgdefense.Season2122.pergame2122` AS (
SELECT 'Nickeil Alexander-Walker' Player, 'SG' Pos, 'TOT' Tm, 2.3 DRB, 0.7 STL, 0.4 BLK UNION ALL
SELECT 'Nickeil Alexander-Walker', 'SG', 'NOP', 2.6, 0.8, 0.4 UNION ALL
SELECT 'Nickeil Alexander-Walker', 'SG', 'UTA', 1.6, 0.4, 0.3
)
SELECT
Player,
Pos,
AVG(DRB),
AVG(STL),
AVG(BLK)
FROM `bgdefense.Season2122.pergame2122`
group by Player, Pos
请注意我没有在 group by
子句中使用 Tm
列。这将取决于您想要的用例 group by
。我的查询在 player,position
聚合级别计算指标的平均值。
注意 - 我在这里假设 Tm 表示团队,每个玩家将参加不同的团队。