数据仓库汇总和分组集,使用哪个?
Data warehouse rollup and grouping sets, which to use?
我已经学习了汇总集、立方体集和分组集,但让我感到困惑的一件事是我怎么知道该使用哪个。例如,如果我需要按区域和经理查找 2006 年每个月的销售额,则两个查询如下
SELECT month, region, sales_mgr, SUM(price)
FROM Sales
WHERE year = 1996
GROUP BY GROUPING SETS((month, region),(month, sales_mgr))
和
SELECT month, region, sales_mgr, SUM(price)
FROM Sales
WHERE year = 1996
GROUP BY ROLLUP(month, region, sales_mgr)
我知道每一个的结果,但我不知道该用哪个来正确回答问题,是不是我漏掉了什么或者都被认为是正确的?
ROLLUP
和 CUBE
只是 shorthand GROUPING SETS
.
的两种常见用法
GROUPING SETS
可以更精确地控制要计算的聚合。
我已经学习了汇总集、立方体集和分组集,但让我感到困惑的一件事是我怎么知道该使用哪个。例如,如果我需要按区域和经理查找 2006 年每个月的销售额,则两个查询如下
SELECT month, region, sales_mgr, SUM(price)
FROM Sales
WHERE year = 1996
GROUP BY GROUPING SETS((month, region),(month, sales_mgr))
和
SELECT month, region, sales_mgr, SUM(price)
FROM Sales
WHERE year = 1996
GROUP BY ROLLUP(month, region, sales_mgr)
我知道每一个的结果,但我不知道该用哪个来正确回答问题,是不是我漏掉了什么或者都被认为是正确的?
ROLLUP
和 CUBE
只是 shorthand GROUPING SETS
.
GROUPING SETS
可以更精确地控制要计算的聚合。