Mar*_*daj 6 sql postgresql pgadmin psql
我有一张桌子
ID | NUMBER
------|----------
1 | 102
2 | 145
3 | 512
4 | 231
5 | 94
Run Code Online (Sandbox Code Playgroud)
并且我希望将所有'NUMBER'相加并从总计返回每行的%值.结果应如下所示:
ID | NUMBER | PERC
------|--------------|-------
1 | 102 | 9.4
2 | 145 | 13.4
3 | 512 | 47.2
4 | 231 | 21.3
5 | 94 | 8.7
Run Code Online (Sandbox Code Playgroud)
到目前为止,我有类似的东西:
SELECT (number/sum(number)*100) AS perc
FROM mytable;
Run Code Online (Sandbox Code Playgroud)
但正如您所知,"数字"必须出现在GROUP BY或聚合函数中,因此我无法使用它.怎么做?
And*_*mar 18
你可以使用sum一个over子句:
SELECT 100.0 * number / sum(number) over () as perc
FROM mytable;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8966 次 |
| 最近记录: |