Když jsem si to zkoušel, tak se to podle mne chová dle potřeby
Mezisoučty mají ID = null, takže prázné.
declare @tTemp table (ID int identity primary key, Skupina int, Nazev char(10), Pocet int)
insert into @tTemp (Nazev, Skupina, Pocet) values
('Jedna', 1, 10),
('Dva', 1, 15),
('Tri', 2, 5),
('Ctyri', 2, 12)
select * from @tTemp
SELECT ID, Skupina, Pocet = Sum(Pocet)
FROM @tTemp
GROUP BY
GROUPING SETS (
(Skupina, ID),
(Skupina),
()
)
ORDER BY
Skupina,
1;
Pokud tam chceš ít nulu, tak to stačí ošetřit, případně i u názvů:
SELECT ID = IsNull(ID, 0), Skupina, Pocet = Sum(Pocet)
FROM @tTemp
GROUP BY
GROUPING SETS (
(Skupina, ID),
(Skupina),
()
)
ORDER BY
Skupina,
1;