如何在mysql中按值排序
Posted
技术标签:
【中文标题】如何在mysql中按值排序【英文标题】:How to order group by values in 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
【问题讨论】:
【参考方案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
【讨论】:
以上是关于如何在mysql中按值排序的主要内容,如果未能解决你的问题,请参考以下文章