PostgreSQL-确定总数的百分比
我有一张桌子PostgreSQL-确定总数的百分比,sql,postgresql,pgadmin,psql,Sql,Postgresql,Pgadmin,Psql,我有一张桌子 ID | NUMBER ------|---------- 1 | 102 2 | 145 3 | 512 4 | 231 5 | 94 我想对所有的“数字”求和,并在每一行返回一个百分比值。 结果应该如下所示: ID | NUMBER | PERC ------|--------------|------- 1 | 102 |
ID | NUMBER
------|----------
1 | 102
2 | 145
3 | 512
4 | 231
5 | 94
我想对所有的“数字”求和,并在每一行返回一个百分比值。
结果应该如下所示:
ID | NUMBER | PERC
------|--------------|-------
1 | 102 | 9.4
2 | 145 | 13.4
3 | 512 | 47.2
4 | 231 | 21.3
5 | 94 | 8.7
到目前为止,我有一些类似于:
SELECT (number/sum(number)*100) AS perc
FROM mytable;
但你们肯定知道,那个“数字”必须出现在groupby或aggregate函数中,所以我不能使用它。如何做到这一点?您可以将
sum
与over
子句一起使用:
SELECT 100.0 * number / sum(number) over () as perc
FROM mytable;
您是否希望保护它不受零除错误的影响?