Rollup Cube Grouping Set使用總結

以上三種在數據彙總統計時經常用到,我嘗試以簡明易懂地總結出其使用方法和意義


GROUP BY ROLLUP(c1,c2,c3...cN) 分級彙總

   1. 彙總從左到右逐級降低,最精細的彙總數據是根據最右的列得到

   2.  根據c1得到全部彙總->再根據c2細分彙總->...->根據cN得到最精細彙總。

採購進貨表Purchase(貨品ID,數量,價格,類型,日期,供應商 )

SELECT MONTH(日期),類型,供應商 ,SUM( 價格)

FROM Purchase

GROUP BY ROLLUP(MONTH(日期),類型,供應商)

彙總的條件包括4種:

 (所有),(MONTH(日期)),(MONTH(日期),類型),(MONTH(日期),類型,供應商)

條件對應的結果集:

得到總採購額彙總,根據日期得到每月採購額彙總,各個月中不同類型商品的採購額的單項彙總,每月中每個類型的商品分別由不同供應商的供貨額。


GROUP BY CUBE(c1,c2,c3...Cn) 獲取所有聚合值的超集,換句話說,就是生成的結果集包括所有可能的聚合情況(所有維度)

SELECT MONTH(日期),類型,供應商 ,SUM( 價格)

FROM Purchase

GROUP BY CUBE(MONTH(日期),類型,供應商)

彙總條件包括7種:

 (所有),(MONTH(日期)),(類型),(供應商),(MONTH(日期),類型),

 (MONTH(日期),供應商),(類型,供應商)
條件對應結果集包括:

      採購總額的彙總,各個月份的採購額彙總,各類型商品的採購額彙總,不同供應商的採購總額,每個月不同類型商品的採購額,每個月不同供應商的採購額,每個類型商品不同供應商的採購額。


GROUP BY GROUPING SETS(c1,c2,c3...cN)指定不同的彙總列,合併結果到一個結果集。類似多個彙總結果用UNION ALL拼起來。

SELECT MONTH(日期),類型,供應商 ,SUM( 價格)

FROM Purchase

GROUP BY  GROUPING SETS(MONTH(日期),類型,供應商)

()條件表示,所有彙總。還可以將多個列組合成一個分組條件,如((c1,c2),c3)

彙總條件:

   (MONTH(日期)),(類型),(供應商),分別得到結果,然後合併到一個返回結果集中。

意義:

    一個結果集輸出,多個分組彙總的合併結果集。各月採購額+各類型商品採購額+各供應商採購額。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章