Одним из способов является подытог в другом запросе, например:
WITH sample(id, amount1, amount2, amount3) AS (
VALUES
(1, 10, 0, 3),
(1, 20, 1, 1),
(2, 5, 2, 2),
(2, 0, 3, 11)
)
SELECT *, false AS is_subtotal FROM sample
UNION ALL
SELECT id, sum(amount1), sum(amount2), sum(amount3), true FROM sample GROUP BY id
ORDER BY
id,
is_subtotal;
SQLfiddle здесь .