Nếu bạn đang sử dụng phiên bản SQL Server 2008 trở lên, bạn có thể sử dụng ROLLUP()
Chức năng GROUP BY:
SELECT
Type = ISNULL(Type, 'Total'),
TotalSales = SUM(TotalSales)
FROM atable
GROUP BY ROLLUP(Type)
;
Điều này giả định rằng Type
cột không được có NULL và do đó, NULL trong truy vấn này sẽ chỉ ra hàng cuộn lên, hàng có tổng lớn. Tuy nhiên, nếu Type
cột có thể có NULL của riêng nó, kiểu tính toán thích hợp hơn cho tổng hàng sẽ giống như trong câu trả lời của @ Declan_K, tức là sử dụng GROUPING()
chức năng:
SELECT
Type = CASE GROUPING(Type) WHEN 1 THEN 'Total' ELSE Type END,
TotalSales = SUM(TotalSales)
FROM atable
GROUP BY ROLLUP(Type)
;