SQL查询以获得每年表现最好的统计数据(例如3个指针)



我有一张每年有球员的表格和一些统计数据。例如(player_key、player_name、year、3point_trials、3point_score(

我希望每年都有最好的表现(3point_score/3point_trials(。如果其中两个有相同的%,那么盈亏平衡就是三分之一,谁的试验次数最多。

产量为每年

Name, Year, %score, trials
Player1 2000 55 1200
Player2 2001 61 1001
Player1 2002 54 978
Player6 2003 63 1034
Player5 2004 59 1132
.....

这个输出的SQL查询是什么?

我建议使用窗口函数:

select p.*
from (
select p.*, 100.0 * 3point_score / 3point_trials score_percent,
rank() over(partition by year order by 100.0 * 3point_score / 3point_trials desc, 3point_trials desc) rn
from players p
) p
where rn = 1
order by year, rn

最新更新