在Sqlite中排序数据不同

时间:2015-01-04 12:53:03

标签: sqlite sorting distinct

我制作了一款游戏,我想存储用户的高分。

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

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

从表中,Ben得分最高。从这个输出,格雷斯是第一个列出,但她没有得到最高分。

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

Ben
Grace
Babe
Kim
Honey

1 个答案:

答案 0 :(得分:0)

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

在排序之前,您必须获得每位玩家的最高分:

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