Redshift - Найти% по сравнению с общей стоимостью - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть таблица с подсчетом по продуктам.Я пытаюсь добавить новый столбец, который найдет% по сравнению с суммой всех строк в этом столбце.

prod_name,count
prod_a,100
prod_b,50
prod_c,150

Например, я хочу найти% от prod_a по сравнению с общим количеством и т. Д.вкл.

Ожидаемый вывод:

prod_name,count,%
prod_a,100,0.33
prod_b,50,0.167
prod_c,150,0.5

Редактировать в SQL:

select count(*),ratio_to_report(prod_name)
over (partition by count(*)) 
from sales
group by prod_name;

1 Ответ

0 голосов
/ 13 декабря 2018

Использование оконных функций.

select t.*,100.0*cnt_by_prod/sum(cnt_by_prod) over() as pct
from tbl t

Редактировать: на основе изменения вопроса ОП, Чтобы вычислить количество и процент, используйте

select prod_name,100.0*count(*)/sum(count(*)) over()
from tbl
group by prod_name
...