GROUP BY ROLLUP用来根据GROUP BY子句中列的此寻来增加层次化的数据汇总。
如下示例获取了货架、产品名和产品的总数:
SELECT i.Shelf,p.Name,SUM(i.Quantity) Total
FROM Production.ProductInventory i
INNER JOIN Production.Product p ON i.ProductID=p.ProductID
GROUP BY ROLLUP(i.Shelf,p.Name)
查询(部分)结果:
Shelf Name Total
A Adjustable Race 761
A BB Vall Bearing 909
...
A NULL 26833
B Adjustable Race 324
B BB Vall Bearing 443
...
B NULL 12672
NULL NULL 39505
注意红字行,为按Shelf的汇总数据行,蓝色字行为查询的总数据汇总。