By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE test (
group_id INT,
name VARCHAR(10),
num INT
);
INSERT INTO test VALUES
(1, 'A', 1),
(1, 'B', 2),
(2, 'C', 1);
Records: 3 Duplicates: 0 Warnings: 0
SELECT group_id,
CASE WHEN group_id IS NULL THEN NULL ELSE MIN(name) END AS name,
SUM(num)
FROM test
GROUP BY group_id WITH ROLLUP
group_id | name | SUM(num) |
---|---|---|
1 | A | 3 |
2 | C | 1 |
null | null | 4 |