как добавить сумму всех значений в sql в виде отдельного столбца - PullRequest
0 голосов
/ 05 февраля 2020

Моя таблица в настоящее время выглядит следующим образом:

Partner    Date           Ad Unit   Revenue   
App        1/1/2020       x         10        
App        1/1/202        y         3        

Мне нужен дополнительный столбец с суммой всех доходов за день, чтобы он выглядел следующим образом

Partner    Date           Ad Unit   Revenue   Total Revenue
App        1/1/2020       x         10        13
App        1/1/2020       y         3         13
App        1/2/2020       x         2         6
App        1/2/20202      y         4         6

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

SELECT
    `Date`,
    `Ad Unit`,
    `Partner`,
    `Revenue`,
    sum(`Revenue`) as `Total Revenue`
from
    `master_table`
group by
    `Date`

И теперь вывод

Partner    Date           Ad Unit   Revenue   Total Revenue
App        1/1/2020       x         10        13

Как Могу ли я сгруппировать данные, чтобы они были разбиты по рекламному блоку и иметь столбец для итогов одновременно с группировкой по дате?

1 Ответ

0 голосов
/ 05 февраля 2020

Вы можете использовать функции окна:

SELECT mt.*, SUM(revenue) OVER (PARTITION BY date) as total_revenue
FROM `master_table` mt;

Это может помочь вам понять их.

Вы также можете сделать это с помощью коррелированного подзапроса:

SELECT mt.*,
       (SELECT SUM(mt2.revenue) 
        FROM master_table mt2
        WHERE mt2.date = mt.date
       ) as total_revenue
FROM master_table mt;
...