Как вычислить процент (долю) каждого значения от общей суммы?
Уровень: Middle
Ответ
Нужно разделить значение на общую сумму по набору. Например, можно использовать оконную функцию SUM() OVER (): SELECT value, value * 100.0 / SUM(value) OVER () AS perc FROM T. Здесь SUM(value) OVER () вычисляет общую сумму по всем строкам, и для каждой строки считается процент ее value от этого итога. Альтернативно – получить общую сумму отдельным запросом/CTE и затем поделить value на эту константу.