【问题标题】:Select User Having Maximum Rating选择评分最高的用户
【发布时间】:2013-01-21 16:38:36
【问题描述】:

我有一个存储用户评分的表格。

例如:

UserId  Rating
 3            1  
 3            2
 1            1
 1            2
 1            3
 1            4
 2            1
 2            23
 2            4

我需要检索评分次数最多的10个用户。

例如:

 1 rated 4 times
 2 rated 3 times
 3 rated 2 times...

知道如何使用 mysql 编写查询吗?

【问题讨论】:

    标签: mysql doctrine-orm symfony-2.1


    【解决方案1】:

    您必须按 userID 分组,计算分组的行数,并按降序排列,然后将查询限制为 10 行:

    SELECT userID, count(*) times
    FROM users
    GROUP BY userID
    ORDER BY times DESC
    LIMIT 10
    

    如果您需要完全如上所示的输出,试试这个:

    SELECT CONCAT_WS(' ', userID, 'rated', count(*), 'times')
    FROM users
    GROUP BY userID
    ORDER BY count(*) DESC
    LIMIT 10
    

    this fiddle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-04
      • 2020-01-03
      • 2012-04-16
      • 2022-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多