成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊聊SQL中的分組集

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

[[421386]]

本文轉載自微信公眾號「SQL數據庫開發」,作者丶平凡世界  。轉載本文請聯系SQL數據庫開發公眾號。

分組集的定義

是多個分組的并集,用于在一個查詢中,按照不同的分組列對集合進行聚合運算,等價于對單個分組使用"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表為例,其內容如下:

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

  1. SELECT 城市,NULL 省份,COUNT(城市) FROM Customers 
  2. GROUP BY 城市 
  3. UNION ALL 
  4. SELECT NULL,省份,COUNT(省份) FROM Customers 
  5. GROUP BY 省份 

結果為:

再使用GROUPING SETS來統計

  1. SELECT  
  2. 城市, 
  3. 省份, 
  4. COUNT(客戶ID) 數量  
  5. FROM Customers 
  6. GROUP BY GROUPING SETS (城市,省份) 

結果如下

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

ROLLUP

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

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

  1. SELECT  
  2. 省份, 
  3. 城市, 
  4. COUNT(1) 數量  
  5. FROM Customers 
  6. GROUP BY GROUPING SETS ( 
  7. 省份,(省份,城市) 

其結果為:

我們使用ROLLUP可以這樣寫

  1. SELECT  
  2. 省份, 
  3. 城市, 
  4. COUNT(客戶ID) 數量  
  5. FROM Customers 
  6. GROUP BY 省份,城市 WITH ROLLUP 

其結果為:

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

CUBE

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

  1. SELECT  
  2. 省份, 
  3. 城市, 
  4. COUNT(客戶ID) 數量  
  5. FROM Customers 
  6. GROUP BY 省份,城市 WITH CUBE 

結果如下:

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

總結

 

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

 

責任編輯:武曉燕 來源: SQL數據庫開發
相關推薦

2023-07-28 09:54:14

SQL數據Excel

2021-08-31 07:54:24

SQLDblink查詢

2022-08-03 08:11:58

數據測試同類型

2021-08-16 08:12:04

SQLMerge用法

2021-11-09 06:55:03

SQLServer排序

2023-08-29 09:46:12

SQLCTE遞歸

2022-10-17 08:22:28

2023-10-26 08:38:43

SQL排名平分分區

2022-07-27 08:31:28

SQL開發控制

2023-06-05 08:36:04

SQL函數RANK()

2021-11-17 08:11:35

MySQL

2023-11-09 11:56:28

MySQL死鎖

2024-04-26 00:00:00

Rust檢查器代碼

2021-10-30 19:56:10

Flutter按鈕 Buttons

2022-05-11 09:01:54

Swift類型系統幻象類型

2021-03-08 00:11:02

Spring注解開發

2024-04-15 00:00:00

RabbitMQ死信隊列消息

2022-07-04 08:54:39

Swift處理器項目

2021-08-16 06:56:21

Slice數組類型內存

2022-04-02 08:14:02

JavaThreadLoca數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩在线视频网址 | 亚洲成人一区二区 | 亚洲 欧美 另类 综合 偷拍 | 国产精品久久久久久久久久久免费看 | 亚洲视频在线免费 | 亚洲欧美激情国产综合久久久 | 日韩美女一区二区三区在线观看 | 2021天天干夜夜爽 | 精品国产一区一区二区三亚瑟 | av黄色片 | 国产精品久久久久久久一区二区 | 亚洲午夜精品视频 | 视频在线日韩 | 99精品一区二区 | 狠狠爱免费视频 | 日日天天 | 激情五月婷婷 | 精品一区二区av | 欧美一区二区三区在线观看视频 | 亚洲精品一区二区三区在线 | 国产91久久久久蜜臀青青天草二 | 日韩国产精品一区二区三区 | 一区二区免费看 | 亚洲视频在线观看一区二区三区 | 国产人免费人成免费视频 | 精品一区在线免费观看 | 国产高清视频一区二区 | 欧美一区视频 | 国产视频久 | 国产区在线免费观看 | 亚洲3级 | 九九精品影院 | 自拍偷拍第一页 | 久久噜噜噜精品国产亚洲综合 | 国产欧美精品区一区二区三区 | 天天看天天干 | 久久国产精品色av免费观看 | 国产日韩欧美电影 | 亚洲人成人一区二区在线观看 | 青青草原综合久久大伊人精品 | 天天爽天天操 |