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

如何计算表中各category类别的记录占总记录的百分比?

实现分类统计及占比查询

没问题,我来帮你完善这个查询,让它输出每个分类的记录数和占总记录的百分比!

方法一:用窗口函数(推荐,效率更高)

窗口函数可以在一次扫描中同时拿到分组统计数和总记录数,不用额外查询整张表,性能更好。直接修改你的语句就行:

SELECT 
    category,
    COUNT(1) AS count,
    ROUND((COUNT(1) * 100.0) / COUNT(*) OVER (), 0) AS percent
FROM your_table
GROUP BY category;

关键说明:

  • COUNT(*) OVER ():这个窗口函数会返回表的总记录数,每个分组都能直接引用这个值
  • 乘以100.0是为了避免整数除法(比如如果用整数计算10/100会得到0,转成浮点数后才能得到正确的0.1)
  • ROUND(..., 0)是把百分比取整,和你示例里的整数格式一致,如果需要保留小数可以调整第二个参数,比如ROUND(..., 1)保留一位小数

方法二:用子查询(兼容老版本数据库)

如果你的数据库不支持窗口函数(比如非常老的MySQL版本),可以用子查询先获取总记录数:

SELECT 
    category,
    COUNT(1) AS count,
    ROUND((COUNT(1) * 100.0) / (SELECT COUNT(*) FROM your_table), 0) AS percent
FROM your_table
GROUP BY category;

这两种方法都能输出你想要的格式:

category | count | percent
cat_a    | 10    | 10
cat_b    | 80    | 80
cat_c    | 10    | 10

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:42:47