我有一张桌子
ID | NUMBER ------|---------- 1 | 102 2 | 145 3 | 512 4 | 231 5 | 94
并且我希望将所有’NUMBER’相加并从总计返回每行的%值.
结果应如下所示:
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;
但正如您所知,“数字”必须出现在GROUP BY或聚合函数中,因此我无法使用它.怎么做?
你可以使用带有over子句的sum:
原文链接:https://www.f2er.com/postgresql/191880.htmlSELECT 100.0 * number / sum(number) over () as perc FROM mytable;