从汇总列中计算百分比?

时间:2019-10-03 21:38:54

标签: sqlite

我不确定如何为此编写SQL查询。

这是桌子:

ZIP;NUMBER
01800;456
02850;445
75001;123
75002;456
75003;789

我需要1.将ZIP开头为“ 75”的所有行的NUMBER列相加,并2.计算这些行在SUM(NUMBER)上所占的百分比。

类似的东西:

select SUM(NUMBER) from MYTABLE WHERE ZIP LIKE "75%" AS 75ZIP;
select (75ZIP/SUM(NUMBER)*100) from MYTABLE;

我应该使用GROUP BY HAVING,子查询还是其他完全使用的东西?

谢谢。

2 个答案:

答案 0 :(得分:2)

有条件聚合:

select 
  100.0 * sum(case when zip like '75%' then number else 0 end) / sum(number)
from tablename

答案 1 :(得分:0)

作为将来的参考,作为替代方案,即将发布的3.30版本支持过滤聚合函数,例如已经可以使用窗口函数完成的操作:

SELECT 100.0 * sum(number) FILTER (WHERE zip LIKE '75%') / sum(number)
FROM mytable;