Выберите несколько столбцов, которые были суммой определенных строк по ключу - PullRequest
0 голосов
/ 14 июня 2019

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

Допустим, у нас есть данные:

date        key value
--------------------------
2019-04-14  A       1    
2019-04-14  B       2    
2019-04-14  C       3    
2019-04-14  D       4    
2019-04-14  E       5    

Я хочу сгруппировать строку в два с определенным ключом иСуммируйте значение каждой группы.

Допустим, что create Group X состоит из значения [A, C, D], а группа Y состоит из значения [B, E].

Итакв конце мы хотели получить два столбца, например:

X   Y
-----
8   7

Мой запрос не работает:

SELECT SUM(a.value) as X, SUM(b.value) as Y
FROM table a, table b
WHERE a.date='2019-04-14' AND b.date=a.date AND a.code IN ('A', 'C', 'D') AND b.code IN ('B', 'E)

1 Ответ

3 голосов
/ 14 июня 2019

Предполагая, что это самообъединение в вашем запросе (то есть соединение той же таблицы обратно в себя), то, что я думаю, вы хотите:

SELECT SUM(case when A.code IN ('A', 'C', 'D') then A.value else 0 end) as X
  , SUM(case when A.code IN ('B', 'E') then A.value else 0 end) as Y
FROM table A

Вам не нужны никакие объединения / сложный SQL, только условная сумма.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...