Как суммировать данные в зависимости от значения в колонке
Есть таблица scrap с 4-мя колонкам
scrap
id: integer
number: integer
type: integer
mass: float
данные
на выходе должно получиться новая таблица в которой будет
mass_t mass_k
где mass_t сумма всех mass, а mass_k сумма всех mass, где type=5. В итоге должно получиться
mass_t mass_k
37.55 7.25
В голове возникает только одна идея с case, но до конца не пойму как это сделать
Ответы (2 шт):
Автор решения: JavaJunior
→ Ссылка
Поскольку тип БД не был указан, держите реализацию на PostgresSQL:
select sum(mass) mass_t, sum(mass) filter (where type = 5) mass_k from scrap;
Автор решения: Akina
→ Ссылка
Вот реализация, которая применима практически к любой СУБД:
SELECT SUM(mass) AS mass_t,
SUM(CASE WHEN type = 5
THEN mass
ELSE 0
END) AS mass_k
FROM scrap;
