【发布时间】:2015-09-01 11:48:16
【问题描述】:
我想根据一个示例来验证我的理解,因为这将用于为我的项目构建等效查询。这是引用自https://oracle-base.com/articles/misc/rollup-cube-grouping-functions-and-grouping-sets#grouping_sets的示例
SELECT fact_1_id,
fact_2_id,
fact_3_id,
SUM(sales_value) AS sales_value,
GROUPING_ID(fact_1_id, fact_2_id, fact_3_id) AS grouping_id
FROM dimension_tab
GROUP BY GROUPING SETS((fact_1_id, fact_2_id), (fact_1_id, fact_3_id))
ORDER BY fact_1_id, fact_2_id, fact_3_id;
根据上面的查询,
我可以说会有两个小计,第一个由
FACT_1_ID, FACT_2_ID分组,另一个由FACT_1_ID, FACT_3_ID分组?1 的
GROUPING_ID指的是FACT_1_ID, FACT_2_ID分组?而 2 的GROUPING_ID指的是FACT_1_ID, FACT_3_ID分组?从第 2 点继续。由于 1 的
GROUPING_ID指的是按FACT_1_ID, FACT_2_ID分组,因此列FACT_3_ID仍然是NULL,因为它没有被用作GROUP BY子句。
我的理解正确吗?
【问题讨论】: