DQL語言的學習——進階5:分組查詢

視頻學習鏈接https://www.bilibili.com/video/av59623481/?p=63

語法:
select 分組函數(計算字段), 分組字段
from 表
[where 條件篩選]
group by 分組的字段
[order by 子句]


特點:
1、可以按單個字段分組
2、和分組函數一同查詢的字段最好是分組後的字段
3、分組篩選
		    針對的表	         位置			        關鍵字
分組前篩選:	原始表		    group by的前面		        where
分組後篩選:	分組後的結果集	 group by的後面		     having

4、可以按多個字段分組,字段之間用逗號隔開
5、可以支持排序
6、group by和having可以支持別名

例:
1. 查詢每個工種的最高工資:SELECT MAX(salary), job_id FROM employees GROUP BY job_id;
2. (分組後的篩選)查詢哪個部門的員工個數大於2:
	1. SELECT COUNT(*), department_id FROM employees GROUP BY department_id HAVING COUNT(*)>2;
3. (分組前篩選)查詢每個工種有獎金的員工的工種的最高工資和工種編號:
	1. SELECT MAX(salary), job_id FROM employees WHERE commission_pct IS NOT NULL GROUP BY job_id;
4. (分組前於分組後結合篩選)查詢每個工種有獎金的員工的最高工資大於12000的工種編號和最高工資:
	1. SELECT MAX(salary), job_id FROM employees WHERE commission_pct IS NOT NULL GROUP BY job_id HAVING MAX(salary) > 12000;
5. (按多個字段分組)查詢每個部門每個工種的員工的平均工資:
	1. SELECT AVG(salary), department_id, job_id FROM employees GROUP BY department_id, job_id;
6. (分組後排序)查詢每個部門每個工種的員工的平均工資,並且按平均工資高低排序:
	1. SELECT AVG(salary), department_id, job_id FROM employees GROUP BY department_id, job_id ORDER BY AVG(salary) DESC;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章