Om du använder SQL Server 2008 eller senare version kan du använda ROLLUP()
GROUP BY-funktion:
SELECT
Type = ISNULL(Type, 'Total'),
TotalSales = SUM(TotalSales)
FROM atable
GROUP BY ROLLUP(Type)
;
Detta förutsätter att Type
kolumnen kan inte ha NULL och så NULL i den här frågan skulle indikera sammandragningsraden, den med totalsumman. Men om Type
kolumnen kan ha sina egna NULL-värden, den mer korrekta typen av redovisning för den totala raden skulle vara som i @Declan_K:s svar, d.v.s. att använda GROUPING()
funktion:
SELECT
Type = CASE GROUPING(Type) WHEN 1 THEN 'Total' ELSE Type END,
TotalSales = SUM(TotalSales)
FROM atable
GROUP BY ROLLUP(Type)
;