Сумма столбца A, где другой столбец B является конкретным значением без отображения столбца B - PullRequest
1 голос
/ 08 июля 2019

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

Таблица X:

Col1  Col2  Col3  Col4
 A     4    tt    6y
 B     5    tt    6y
 C     4    ee    7y
 A     3    ee    7u 
 A     4    ee    6y
 B     5    tt    8u
 C     4    tt    7y
 A     3    xx    8u 

Моя группа выбора

select Col1, Sum(Col2), Col4
from table x
group by Col1, Col4

Мне нужно добавить 2 новых столбца в группу, сумма столбца Col2, где Col3 - это tt, а другая - сумма Col2, где Col3 - это ее. Мне не нужно показывать значение Col3 и не хочу группировать по Col3.

Я посмотрел на раздел, но не могу понять, как указать раздел для значения столбца.

Ответы [ 2 ]

3 голосов
/ 08 июля 2019

Вам нужна условная агрегация:

Select
  Col1, Col4,
  Sum(Col2) sumcol2,
  Sum(case when col3 = 'tt' then Col2 else 0 end) sumtt,
  Sum(case when col3 = 'ee' then Col2 else 0 end) sumee
from table x
group by Col1,Col4
0 голосов
/ 08 июля 2019

Используйте HAVING аналогично условию WHERE при группировке.Что-то вроде:

SELECT Col1,Sum(Col2),Col4
FROM table x
GROUP BY Col1,Col4
HAVING COl3 LIKE 'ee'

Поскольку я не сижу за своей машиной SQL, я не могу проверить это - протестируйте это самостоятельно.

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