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

MySQL统计字段值出现次数并返回Top3高频值的查询方法

问题背景

待查询的数据表(假设表名为color_stats,请替换为实际业务中的表名)存储数据如下:

idcolor_value
3yellow
5yellow
12red
33green
47purple
58red
59red
61orange
62green

查询目标:

  • 统计color_value字段每个颜色取值对应的总记录数
  • 返回使用频次排名前三的颜色统计结果
实现SQL
SELECT
  color_value,
  COUNT(*) AS total_count
FROM `color_stats`
GROUP BY color_value
ORDER BY total_count DESC
LIMIT 3;
逻辑说明
  • 用GROUP BY按color_value字段分组,将相同颜色的记录聚合到同一分组
  • 用COUNT(*)统计每个分组内的记录总数,结果别名设为total_count,方便识别
  • 按统计得到的总条数降序排序,让出现频次高的颜色排在结果靠前位置
  • 用LIMIT 3截取排序后的前3条记录,即为频次Top3的统计结果
执行结果参考

针对给出的样例数据,执行上述SQL后返回结果如下:

color_valuetotal_count
red3
yellow2
green2

补充说明:如果业务场景下需要把所有和第三名频次相同的并列结果全部返回,不做截断,可以使用RANK()窗口函数先做排名再筛选,适配并列排名的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 02:36:10