在 Sqlite 中使用 Distinct 对数据进行排序

Sorting Data With Distinct in Sqlite

我创建了一个游戏,我想存储用户的最高分。

例如,我有一个名为 scores 的 table,其中包含这些记录...

ID   | Name        | Score
1    | Grace       | 90
2    | Grace       | 100
3    | Ben         | 70
4    | Kim         | 80
5    | Grace       | 74
6    | Grace       | 50
7    | Ben         | 80
8    | Honey       | 23
9    | Babe        | 85
10   | Ben         | 120

我想显示玩家的名字(不重复)并将其从最高分到最低分排序。

我试过了...

SELECT DISTINCT Name FROM scores ORDER BY Score DESC

但它并非始终有效。它给了我这个输出...

Grace
Babe
Kim
Ben
Honey

在table中,Ben得分最高。从这个输出中,Grace 是第一个列出的,但她没有获得最高分。

我应该输入什么 Sqlite 代码才能显示这些预期的输出?

Ben
Grace
Babe
Kim
Honey

查询首先按分数对所有行进行排序,然后删除一些随机行,直到没有重复项为止。

在排序之前,您必须获得每个玩家的最大分数:

SELECT Name,
       MAX(Score)
FROM scores
GROUP BY Name
ORDER BY MAX(Score) DESC