日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

分組集的定義

是多個分組的并集,用于在一個查詢中,按照不同的分組列對集合進行聚合運算,等價于對單個分組使用"UNION ALL",計算多個結果集的并集。

 

分組集種類

SQL Server的分組集共有三種 GROUPING SETS, CUBE, 以及ROLLUP, 其中 CUBE和ROLLUP可以當做是GROUPING SETS的簡寫版

 

GROUPING SETS

GROUPING SETS子句允許你指定多個GROUP BY選項。增強了GROUP BY的功能。

可以通過一條SELECT語句實現復雜繁瑣的多條SELECT語句的查詢。并且更加的

高效,解析存儲一條SQL于語句

 

GROUP SETS示例

我們以Customers表為例,其內容如下:

 

圖片圖片

我們先分別對城市和省份進行分組,統計出他們的數量

SELECT 城市,NULL 省份,COUNT(城市) FROM Customers
GROUP BY 城市
UNION ALL
SELECT NULL,省份,COUNT(省份) FROM Customers
GROUP BY 省份

結果為:

圖片圖片

 

再使用GROUPING SETS來統計

SELECT 
城市,
省份,
COUNT(客戶ID) 數量
FROM Customers
GROUP BY GROUPING SETS (城市,省份)

結果如下

圖片圖片

其實上下兩個結果是一樣的,只是UNION ALL不排序,而GROUPING SETS增加了排序。這樣不僅減少了代碼,而且這樣的效率會比UNION ALL的效率高。通常GROUPING SETS使用在組合分析中。

 

ROLLUP

ROLLUP也是GROUPING SETS的一種簡略寫法,我們舉例說明。

我們先使用GROUPING SETS的多層組合

SELECT 
省份,
城市,
COUNT(1) 數量
FROM Customers
GROUP BY GROUPING SETS (
省份,(省份,城市)
)

其結果為:

圖片圖片

我們使用ROLLUP可以這樣寫

SELECT 
省份,
城市,
COUNT(客戶ID) 數量
FROM Customers
GROUP BY 省份,城市 WITH ROLLUP

其結果為:

圖片圖片

我們來解讀一下ROLLUP的作用,其作用是對每個列先進行一次分組,并且對第一列的數據在每個組內還進行一次匯總,最后對所有的數據再進行一次匯總,所以相比GROUPING SETS會多了個所以數據的匯總。這個在對組內進行聚合時是經常使用到的。

 

CUBE

而CUBE相比ROLLUP就更多一個維度了,我們還是距離說明。

SELECT 
省份,
城市,
COUNT(客戶ID) 數量
FROM Customers
GROUP BY 省份,城市 WITH CUBE

結果如下:

圖片圖片

在ROLLUP的基礎上,還會將第一列每組的匯總數據額外顯示在最后。

 

總結

分組集類似于Excel的透視圖,可以對各類數據進行組內計算,這里不止可以進行數量統計,也可以進行求和,最大最小值等操作。是我們在進行數據分析時候經常使用到的一組功能。

分享到:
標簽:SQL
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定