2015-01-04 90 views
0

我创建了一款游戏,我想存储用户的高分。在Sqlite中对不同的数据进行排序

例如,我有一个名为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 

从表中,本的得分最高。从这个输出中,格雷斯是第一个上市的人,但她没有得到最高分。

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

Ben 
Grace 
Babe 
Kim 
Honey 

回答

0

查询第一排序所有行按分数,然后删除一些随机行,直到没有重复的离开了。

你必须让每个球员最大的得分排序前:

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

感谢您即刻回答我的问题。它正在工作。 – Mai 2015-01-04 13:02:16