SQL Server 2008以降のバージョンを使用している場合は、ROLLUP()
を使用できます。 GROUP BY関数:
SELECT
Type = ISNULL(Type, 'Total'),
TotalSales = SUM(TotalSales)
FROM atable
GROUP BY ROLLUP(Type)
;
これは、Type
が 列にNULLを含めることはできないため、このクエリのNULLは、総計を含むロールアップ行を示します。ただし、Type
列には独自のNULLを含めることができます。行全体を計算するためのより適切なタイプは、@ Declan_Kの回答のようになります。つまり、GROUPING()
を使用します。 機能:
SELECT
Type = CASE GROUPING(Type) WHEN 1 THEN 'Total' ELSE Type END,
TotalSales = SUM(TotalSales)
FROM atable
GROUP BY ROLLUP(Type)
;