#sql
Вопрос:
Я хочу рассчитать процент для следующей таблицы:
type , quantitie
A , 25
B , 5
C , 20
D , 10
E , 15
ожидаемый результат будет
type , percentage
A , 33,3
B , 6,66
C , 26,66
D , 13,33
E , 20
Ответ №1:
Обычно для этого вы используете оконные функции. Я предпочитаю соотношение:
select type, quantitie * 1.0 / sum(quantitie) over ()
from t;
Это связано с тем * 1.0
, что некоторые базы данных выполняют целочисленное деление. Если вам нужно значение от 0 до 100, используйте * 100.0
.