【问题标题】:SQL query to get top performer statistics per year (eg 3 pointers)SQL 查询以获取每年表现最佳的统计数据(例如 3 个指针)
【发布时间】:2021-01-29 19:39:34
【问题描述】:

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

我希望获得每年表现最好的输出(3point_score/3point_trials)。如果其中两个具有相同的 %,则盈亏平衡点是 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 查询是什么?

【问题讨论】:

    标签: sql max greatest-n-per-group


    【解决方案1】:

    我会推荐窗口函数:

    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
    

    【讨论】:

    • @Serg:对!这 3 指针的事情让我很烦。
    • 有效!有没有更简单的方法,只使用简单的函数,比如 group by、order by 和 limit?
    猜你喜欢
    • 2014-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-27
    • 2015-03-26
    • 2010-11-11
    • 1970-01-01
    相关资源
    最近更新 更多