天天看點

MySQL資料庫學習筆記(8)- DQL之分組資料1. 分組的基本使用2. 分組過濾3. group_concat的使用

文章目錄

  • 1. 分組的基本使用
  • 2. 分組過濾
  • 3. group_concat的使用

MySQL中使用 group by 對資料進行分組。它必須配合聚合函數進行使用,對資料進行分組後可以執行 count 、 sum 、 avg 、 max 和 min 等操作。

1. 分組的基本使用

下面是一個簡單的示例,将員工表 employee 按照部門 department 進行分組,統計各個部門的人數。

完整的表中資料如下:

MySQL資料庫學習筆記(8)- DQL之分組資料1. 分組的基本使用2. 分組過濾3. group_concat的使用

使用如下語句對資料進行分組:

結果如下:

MySQL資料庫學習筆記(8)- DQL之分組資料1. 分組的基本使用2. 分組過濾3. group_concat的使用

2. 分組過濾

之前我們對資料過濾使用 WHERE 子句, 對于分組後的資料我們使用 HAVING 子句。此時, WHERE 子句表示對分組前資料的過濾。

  • WHERE 表示對分組前的資料進行過濾。
  • HAVING 表示對分組後的資料進行過濾。

我們想要統計,員工工資不小于10000且部門人數多于1個人的部門統計。

SQL語句可以這麼寫:

SELECT department, Count(*) FROM employee 
	WHERE salary >= 10000 
	GROUP BY department 
	HAVING Count(*) > 1;
           

結果如下:

MySQL資料庫學習筆記(8)- DQL之分組資料1. 分組的基本使用2. 分組過濾3. group_concat的使用

3. group_concat的使用

group_concat 配合 group by 一起使用,用于将某一列的值按指定的分隔符進行拼接,MySQL中預設為逗号。

比如我們按照部門分組後,想檢視每個部門中都有誰,SQL語句可以寫成這樣:

SELECT department, Count(*), GROUP_CONCAT(name) 
	FROM employee 
	GROUP BY department;
           

結果如下:

MySQL資料庫學習筆記(8)- DQL之分組資料1. 分組的基本使用2. 分組過濾3. group_concat的使用

繼續閱讀