1

我有一张这样的桌子

id  UserID      score   create_time     
7   002YEXEKF9  120000  2013-06-06 14:04:52     
8   0008FV2FN5  120     2013-06-06 15:10:39             
9   0008FV2FN5  130     2013-06-06 16:57:27             
10  DT5LP0V8AH  1200    2013-06-06 15:13:44         
11  DT5LP0V8AH  1400    2013-06-06 16:31:03     

我将此查询用于选择数据:

SELECT userid, score FROM high_score ORDER BY score DESC

结果:

userid      score 
002YEXEKF9  120000
DT5LP0V8AH  1400
DT5LP0V8AH  1200
0008FV2FN5  130
0008FV2FN5  120

如您所见,user_id DT5LP0V8AH,0008FV2FN5 有两个分数。我不想要这个。我想显示最高分的用户。我只想要这样的结果:

userid      score 
002YEXEKF9  120000
DT5LP0V8AH  1400
0008FV2FN5  130

任何人都可以修复 sql 吗?我真的很感激。

4

3 回答 3

2

我认为您可以使用MAX()获得最高分和GROUP BY聚合函数来分组userid

SELECT userid, MAX(score) 
FROM high_score 
GROUP BY userid
ORDER BY score DESC
于 2013-06-06T10:18:29.780 回答
0

你必须使用MAX,GROUP BY来得到你想要的结果。

SELECT userid, MAX(score) 
FROM high_score 
GROUP BY userid ORDER BY score DESC

查找有关MAX的更多信息。

查找有关GROUP BY的更多信息

我希望它会奏效。

于 2013-06-06T10:21:26.870 回答
0

这应该有效(尚未测试)。

SELECT  userid, MAX(score) max_score FROM high_score GROUP BY userid ORDER BY max_score DESC
于 2013-06-06T10:24:03.083 回答