我有一个高分排行榜,并且需要不显示重复记录以获得更准确的排行榜。
Table: highscores
+-------------------+----------------+-------------+-------+
| id | name | time | moves | score |
+-------------------+----------------+-------------+-------+
| 1 | person1 | 33 | 22 | 245 |
+-------------------+----------------+-------------+-------+
| 2 | person1 | 83 | 31 | 186 |
+-------------------+----------------+-------------+-------+
我的查询是
SELECT * FROM highscores ORDER by Score DESC LIMIT 100
如何更改查询以仅显示重复记录的较高分数而不弄乱降序部分
这似乎有效
SELECT * FROM highscores GROUP BY name ORDER by Score DESC LIMIT 100
最佳答案
使用mysql的自定义分组依据:
SELECT * FROM (
SELECT * FROM highscores
ORDER by Score DESC) x
GROUP BY name
ORDER by Score DESC
LIMIT 100
这是有效的,因为当分组依据中未列出所有非聚合列时,mysql 将返回分组依据中列出的列的每个唯一组合遇到的第一行。
关于Mysql查询不显示重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23071960/