создание нового столбца с условной группой - PullRequest
0 голосов
/ 13 марта 2020

Я пытаюсь найти способ суммирования столбца на основе условий: создать новый столбец с агрегированными значениями.

enter image description here

Мне нужно суммировать столбец D на основе условия столбца из столбцов A, B и C. Значение 1 в столбце A является исключением. Требуется следующий вывод:

enter image description here

При создании нового столбца E, который суммирует столбец D (2958673 + 2166646) по условию Столбец A (10,12) и столбец B (20) и столбец C (3) в строке 1. Аналогично столбец D (1799504) по условию столбца A (12) и столбца B (20) и столбца C (4) в строке 2

1 Ответ

1 голос
/ 13 марта 2020

Возможно, это комментарий, но он слишком длинный.

Я просто не следую логике c, которую вы хотите реализовать. Ваши результаты могут быть получены с помощью простого запроса с фильтрацией:

select a, b, c, d as d, d as e
from t
where a = 1;

РЕДАКТИРОВАТЬ:

Возможно, это то, что вы хотите?

select 1, b, c,
       sum(d) filter (where a = 1) as d,
       sum(d) filter (where a in (10, 12)) as e
from t
group by b, c;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...