Объединение двух групп в SQL - PullRequest
0 голосов
/ 10 октября 2019

Я хочу объединить метрики для двух групп в одном поле, в то время как другие группы в этом поле остаются самостоятельными. Как мне это сделать?

Я извлекаю операционные метрики и группирую их по разным модулям. У меня есть стручки A, B, C и D. Я хочу объединить стручки B и C, чтобы получить метрики для стручков A, стручка D и стручков B_C.

SELECT pod, volume
FROM table
WHERE Date.closed_week BETWEEN STRFTIME_USEC(DATE_ADD(TIME_USEC_TO_WEEK(NOW(), 0), -4, 'Week'), '%F') AND STRFTIME_USEC(DATE_ADD(TIME_USEC_TO_WEEK(NOW(), 0), -1, 'Week'), '%F')
GROUP BY 1

Выше приведен объем для стручковA, B, C и D. Однако я ищу способ объединить тома для pod B и C в один ряд. (Очевидно, это не мой настоящий код, но этого должно быть достаточно, чтобы понять суть.)

1 Ответ

0 голосов
/ 11 октября 2019

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

SELECT sum(case when pod = 'A' then volume else 0 end) as PodA
    , sum(case when pod in ('B', 'C') then volume else 0 end) as PodBC
    , sum(case when pod = 'D' then volume else 0 end) as PodD
FROM table
WHERE Date.closed_week BETWEEN STRFTIME_USEC(DATE_ADD(TIME_USEC_TO_WEEK(NOW(), 0), -4, 'Week'), '%F') AND STRFTIME_USEC(DATE_ADD(TIME_USEC_TO_WEEK(NOW(), 0), -1, 'Week'), '%F')
...