按SQL分组的平均值

时间:2020-05-29 09:59:41

标签: sql sqlite

我有命令:

SELECT
  number_of_pairs,
  COUNT(*) --/(SUM(COUNT)) AS Percentage
FROM result
WHERE number_of_pairs!= 'NULL'
GROUP BY 1;

结果为:

enter image description here

但是我的目标不是要知道每个组的数量,而是要知道每个组相对于总数的百分比。 我尝试过:

COUNT(*)/(SUM(COUNT)) AS Percentage

但是什么也不返回。

我想在第一行中获得379/(379+371)=0.505,在第二行中获得371/(379+371)=...

SQLite版本:3.11.0

1 个答案:

答案 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

相关问题