You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL中如何对GROUP BY结果排序:获取订阅量Top10主题

解决MySQL按订阅人数排序取前10主题的问题

嗨,你离正确结果只差一步啦!你当前的SQL已经完成了分组统计,但缺少按订阅人数降序排序的逻辑,所以不会自动把订阅量最高的主题排在前面。

只需要在你的SQL里加上ORDER BY子句,指定按统计出的订阅数从大到小排列,就能得到想要的结果。这里给你两种写法:

写法1(推荐,可读性更高)

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

写法2(省略别名,更简洁)

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

关键逻辑解释:

  • COUNT(*) AS subscriber_count:给订阅计数结果起一个直观的别名,方便排序和查看输出
  • ORDER BY ... DESC:DESC代表降序排列,这样订阅人数最多的主题会排在最顶部;如果写成ASC就是升序,会得到订阅最少的主题,不符合你的需求
  • LIMIT 10:保留排序后的前10条记录,正好是你要的订阅量最高的前10个主题

用你提供的示例数据测试的话,运行上面的SQL会输出你期望的结果:

targetId | subscriber_count

A | 2
B | 1

内容的提问来源于stack exchange,提问作者sehese8139

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 19:57:26