Агрегировать SQL-запрос, чтобы найти% по сравнению с общим - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть запрос, показывающий счетчик по магазинам. Я хотел бы найти% против итога.

Ниже приведен SQL, который я построил:

select store, sum(sales), bill_date
from sales
where date = '2018-01-01'
group by store, bill_date 

Выход:

Store A,100,2018-01-01
Store B,123,2018-01-01
Store C,130,2018-01-01
Store D,113,2018-01-01

Я хотел бы добавить еще одну колонку, которая показывает% продаж, сделанных каждым магазином, по сравнению со всеми магазинами. Может кто-нибудь помочь. Спасибо

1 Ответ

0 голосов
/ 27 апреля 2018

Использовать стандартные оконные функции ANSI:

select store, sum(sales), bill_date,
       sum(sales) * 1.0 / sum(sum(sales)) over () as store_ratio
from sales
where date = '2018-01-01'
group by store, bill_date ;

* 1.0 становится некоторыми базами данных, делающими целочисленное деление (поэтому 1/2 = 0, а не 0,5). Это может не относиться к вашей базе данных.

...