PostgreSQL-определение процента от общего числа
у меня есть таблица
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;
но, как вы знаете наверняка, это "число" должно отображаться в GROUP BY или aggregate function, поэтому я не могу его использовать. Как это сделать?
1 ответов
можно использовать sum
С over
статья:
SELECT 100.0 * number / sum(number) over () as perc
FROM mytable;