我有命令:
SELECT
number_of_pairs,
COUNT(*) --/(SUM(COUNT)) AS Percentage
FROM result
WHERE number_of_pairs!= 'NULL'
GROUP BY 1;
结果为:
但是我的目标不是要知道每个组的数量,而是要知道每个组相对于总数的百分比。 我尝试过:
COUNT(*)/(SUM(COUNT)) AS Percentage
但是什么也不返回。
我想在第一行中获得379/(379+371)=0.505
,在第二行中获得371/(379+371)=...
SQLite版本:3.11.0
答案 0 :(得分:0)
您可以使用navigationbar
窗口函数来获取总数:
SUM()
除非在列SELECT
number_of_pairs,
1.0 * COUNT(*) / SUM(COUNT(*)) OVER() AS Percentage
FROM result
WHERE number_of_pairs <> 'NULL'
GROUP BY number_of_pairs;
中实际上有'NULL'
作为字符串文字,否则必须将条件更改为:
number_of_pairs
对于不支持窗口功能的旧版SQLite:
number_of_pairs IS NOT NULL
查看简化的demo。