mysql选择订单问题

时间:2013-06-06 10:15:30

标签: mysql select

我有一张这样的表

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吗?。我真的很感激。

3 个答案:

答案 0 :(得分:2)

我认为您可以使用MAX()获得最高分和GROUP BY汇总功能,以userid分组

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

答案 1 :(得分:0)

您必须使用MAXGROUP BY来获得您想要的结果。

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

MAX上找到更多信息。

GROUP BY

上查找更多信息

我希望它能奏效。

答案 2 :(得分:0)

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

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