【发布时间】:2018-05-18 21:21:04
【问题描述】:
| id | uid | score | date |
————————————————————————————————
| 1 | aaa | 10 | 2017.7.7|
| 2 | bbb | 5 | 2017.7.7|
| 3 | aaa | 15 | 2017.7.7|
| 4 | bbb | 20 | 2017.7.8|
我想得到每个人的最高分,每一行都应该包括所有字段,比如 id 和 date。
| id | uid | score | date |
—————————————————————————————
| 4 | bbb | 20 | 2017.7.8|
| 3 | aaa | 15 | 2017.7.7|
Select max(score) as score, id, date, uid from data group by uid order by score desc
我可以使用这个 sql 在 v5.7 之前的 MySQL 中获得我想要的东西,但是你知道在 MySQL 5.7 之后有一个 sql_mode ONLY_FULL_GROUP_BY。所以我不能像以前那样得到结果。我看到有一些答案告诉我禁用该模式。但是我想知道是否有任何sql可以做到这一点以及我没有禁用模式。
【问题讨论】:
-
如果以下任何答案已经解决/帮助您解决了您的问题,请将其标记为答案和/或为答案投票。