【问题标题】:mysql select order issuemysql选择顺序问题
【发布时间】:2013-06-06 10:15:30
【问题描述】:

我有一张这样的桌子

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 吗?非常感谢。

【问题讨论】:

  • 试试SELECT userid, max(score) as score FROM high_score GROUP BY userid ORDER BY score DESC...

标签: mysql select


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    这应该可以工作(尚未测试)。

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

    【讨论】:

      【解决方案3】:

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

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

      MAX 上查找更多信息。

      GROUP BY上查找更多信息

      我希望它会起作用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-03
        • 1970-01-01
        • 2020-11-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多