SQL: совокупная сумма и отфильтрованная совокупная сумма - PullRequest
0 голосов
/ 18 октября 2019

Я чувствую, что это суперосновный вопрос, но он ставит меня в тупик! Представьте, что у меня есть таблица (Доход), которая выглядит примерно так:

Month     Product      Revenue
2019-01   Networking   1.00
2019-01   Computing    2.53
2019-01   Storage      4.88
2019-02   Networking   5.32
2019-02   Storage      6.20
...

Все, что я хочу сделать, это суммировать общий доход по месяцам и Сетевой доход по месяцам но ради жизни я не могу обернуть голову, как бы я это сделал (если не писать два запроса). Таким образом, результаты должны выглядеть примерно так:

Month     TotalRevenue  NetworkingRevenue
2019-01   8.41          1.00
2019-02   11.52         5.32
... 

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 18 октября 2019

случаев использования, когда

 select month,
 sum(case when Product='Networking' then Revenue else 0 end) as NetworkingRevenue,
 sum(Revenue) as TotalRevenue from table_name group by month
0 голосов
/ 18 октября 2019

Попробуйте:

SELECT 
  Month, 
  SUM(revenue) AS Revenue, 
  SUM(CASE WHEN Product = 'Networking' THEN Revenue ELSE 0 END) AS Revenue_Networking
FROM MyTable
GROUP BY Month
ORDER BY Month

SQL Fiddle

...