【发布时间】:2021-08-04 20:43:19
【问题描述】:
我有一张表格,上面有用户参加不同比赛的结果。 在每场比赛中表现得分最高的人是每场比赛的获胜者。 所以在下面的例子中,Alice 赢了 0 场,Bob 赢了 1 场,Chris 赢了 2 场。
我需要的是能够为给定用户计算他/她在他/她参加的所有比赛中赢得了多少胜利,以及另一个数量的领奖台结果(第一名或第三名)。
这甚至可以单独使用 SQL 吗?我正在使用 MySQL
附:我不知道为什么表格没有正确呈现,它在预览中看起来很完美,所以如果有人能修复它,非常感谢。
| RaceID | UserID | Performance |
|---|---|---|
| 1 | Alice | 90 |
| 1 | Bob | 100 |
| 2 | Alice | 100 |
| 2 | Bob | 90 |
| 2 | Chris | 110 |
| 3 | Alice | 90 |
| 3 | Bob | 80 |
| 3 | Chris | 150 |
【问题讨论】:
-
ROW_NUMBER() 在 CTE 中并在外部查询中聚合。另一方面 - 如果 2 个用户具有相同的最大性能怎么办?
标签: mysql greatest-n-per-group