下面是我的蜂巢式查询,试图找出每个赛季得分最高的主队。
select t1.season , max(t1.TOTAL_Goals) as Highest_Score
from
(select season, home_team_id, sum(home_goals) TOTAL_Goals
from game_kpark
group by season, home_team_id
) as t1
group by t1.season
上面的代码结果如下表
t1.season highest_score
20122013 118
20132014 179
20142015 174
20152016 173
20162017 204
20172018 185
如果我在t1.home_team_id
之后加上SELECT
之后加上GROUP BY
,
它会返回每个赛季所有球队的综合得分,而不是最高得分。
如何正确编写查询以查看每个赛季得分最高的相应球队?
答案 0 :(得分:0)
使用rank()
分析函数:
select s.season, s.home_team_id, s.TOTAL_Goals
from
(
select s.season, s.home_team_id, s.TOTAL_Goals,
rank() over(partition by season order by s.TOTAL_Goals desc) as rnk
from
(--team season totals
select season, home_team_id, sum(home_goals) TOTAL_Goals
from game_kpark
group by season, home_team_id
) s
) s
where rnk=1; --filter teams with highest rank per season