Teradata SQL: как использовать функцию SUM для суммирования итогов в 2 группы в зависимости от случая А или В? - PullRequest
0 голосов
/ 18 октября 2018
SELECT
    Account,
    CASE WHEN Type = 1 THEN SUM(Amount) END AS Type1_tot,
    CASE WHEN Type = 2 THEN SUM(Amount) END AS Type2_tot
FROM Table

Ошибка - выбранные неагрегированные значения должны быть частью связанной группы.

Ниже приведена таблица данных и ожидаемых результатов:

enter image description here

1 Ответ

0 голосов
/ 18 октября 2018

Используйте условное агрегирование и вместо этого суммируйте по вашим CASE выражениям:

SELECT
    Account,
    SUM(CASE WHEN Type = 1 THEN Amount ELSE 0 END) AS Type1_tot,
    SUM(CASE WHEN Type = 2 THEN Amount ELSE 0 END) AS Type2_tot
FROM yourTable
GROUP BY
    Account
...