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

SQLite中如何为分组计数结果添加占比列?彩票数据场景

解决方案:添加分组占比百分比列

嘿,要给你的彩票开奖数据统计加上分组占比很简单,咱们分两种情况来实现,适配不同的SQLite版本:

方法一:子查询获取总数量(兼容所有SQLite版本)

这种方法兼容性拉满,不管你用的是哪个版本的SQLite都能跑。核心思路是先通过子查询算出表中所有数字的总数量,再用每组的数字个数除以总数得到百分比:

SELECT 
    LAST_150,
    COUNT(LAST_150) AS count_numbers,
    -- 乘以100.0确保浮点运算,避免整数除法误差,ROUND保留2位小数可按需调整
    ROUND((COUNT(LAST_150) * 100.0) / (SELECT COUNT(*) FROM CalculatedNumbers), 2) AS percentage
FROM CalculatedNumbers
GROUP BY LAST_150
ORDER BY count_numbers DESC;

方法二:窗口函数(SQLite 3.25+版本推荐)

如果你的SQLite版本在3.25及以上(支持窗口函数),用这个方法更简洁高效,不需要单独的子查询,直接通过SUM() OVER ()计算所有分组的总数:

SELECT 
    LAST_150,
    COUNT(LAST_150) AS count_numbers,
    ROUND((COUNT(LAST_150) * 100.0) / SUM(COUNT(LAST_150)) OVER (), 2) AS percentage
FROM CalculatedNumbers
GROUP BY LAST_150
ORDER BY count_numbers DESC;

关键注意点

  • 一定要用100.0而不是100:SQLite默认会做整数除法,如果用100的话,小于总数1%的分组会直接得到0,100.0会把运算转为浮点型,得到正确的小数结果。
  • ROUND()的第二个参数可以调整:比如想要1位小数就写1,想要保留更多精度就写对应数字,去掉ROUND()的话会显示完整的浮点结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 23:12:29