MySQL數據庫學習筆記(8)- DQL之分組數據


MySQL中使用 group by 對數據進行分組。它必須配合聚合函數進行使用,對數據進行分組後可以執行 countsumavgmaxmin 等操作。

1. 分組的基本使用

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

完整的表中數據如下:
MySQL數據庫學習筆記(8)- DQL之分組數據

使用如下語句對數據進行分組:

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

結果如下:
MySQL數據庫學習筆記(8)- DQL之分組數據

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之分組數據

3. group_concat的使用

group_concat 配合 group by 一起使用,用於將某一列的值按指定的分隔符進行拼接,MySQL中默認爲逗號。
比如我們按照部門分組後,想查看每個部門中都有誰,SQL語句可以寫成這樣:

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

結果如下:
MySQL數據庫學習筆記(8)- DQL之分組數據

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