【问题标题】:How to order group by values in mysql如何在mysql中按值排序
【发布时间】:2021-09-03 19:46:46
【问题描述】:

我的 mysql 数据库中有表。

我正在存储该用户正在订阅某个主题。

我想打印订阅者订购的前 10 个主题 (targetId)。

演示:

id | targetId
-----------------
1  | A
2  | A
3  | B

结果:

targetId | COUNT
-----------------
A        | 2
B        | 1

我的问题是我不知道如何对结果进行排序。

我目前的查询是:

SELECT targetId, COUNT(*) FROM subscription GROUP BY targetId LIMIT 10 

【问题讨论】:

    标签: mysql group-by sql-order-by


    【解决方案1】:

    添加ORDER BY 子句:

    SELECT targetId, COUNT(*)
    FROM subscription
    GROUP BY targetId
    ORDER BY COUNT(*) DESC
    LIMIT 10;
    

    请注意,在使用LIMIT 时,通常应该始终使用ORDER BY。使用 LIMIT 而不使用 ORDER BY 是相当不确定的,因为不清楚要检索哪些记录。

    【讨论】:

      【解决方案2】:

      如果您需要按升序排列,请使用以下查询

      SELECT targetId, counter FROM
      (
          SELECT targetId, COUNT(*)counter
          FROM subscription
          GROUP BY targetId
      )A  ORDER BY counter
      LIMIT 10 
      

      【讨论】:

        猜你喜欢
        • 2016-01-08
        • 2010-11-21
        • 2021-12-17
        • 2018-06-26
        • 2011-12-24
        • 1970-01-01
        • 2016-12-25
        • 1970-01-01
        • 2022-01-15
        相关资源
        最近更新 更多