SUM
Возвращает сумму значений выражения в группе строк.
PostgreSQL 17.9
SUM([DISTINCT] expression)- [ ]необязательная часть
- DISTINCT
- Суммировать только уникальные значенияКлючевое словоНеобязательный
- expression
- Числовое выражение, значения которого суммируютсяnumeric
Возвращаемое значение
Число: bigint для smallint и integer, numeric для bigint и numeric, для real и double precision — тот же тип; NULL не учитываются, для пустого набора — NULL, а не 0
Примеры
Сумма всех платежей
PostgreSQL 17.9
SELECT SUM(amount * unit_price) AS total
FROM Payments;Траты каждого члена семьи
PostgreSQL 17.9
SELECT family_member,
SUM(amount * unit_price) AS spent
FROM Payments
GROUP BY family_member
ORDER BY family_member;Пустой набор строк
PostgreSQL 17.9
SELECT SUM(unit_price) AS total
FROM Payments
WHERE unit_price < 0;Подробности
Чтобы для пустого набора получить 0, оберните результат в COALESCE: COALESCE(SUM(amount), 0). Сложить только часть строк группы можно через FILTER (WHERE ...).