group by 用法
group by(用來分組)語法可以根據給定數據列的每個成員對查詢結果進行分組統計,最終得到一個分組匯總表
某個員工信息表結構和數據如下staff:
id name dept salary edlevel hiredate
1 張三 開發部 2000 3 2009-10-11
2 李四 開發部 2500 3 2009-10-01
3 王五 設計部 2600 5 2010-10-02
4 王六 設計部 2300 4 2010-10-03
5 馬七 設計部 2100 4 2010-10-06
6 趙八 銷售部 3000 5 2010-10-05
7 錢九 銷售部 3100 7 2010-10-07
8 孫十 銷售部 3500 7 2010-10-06
1、我想列出每個部門最高薪水的結果:
SELECT DEPT, MAX(SALARY) AS MAXIMUM
FROM STAFF
GROUP BY DEPT
“列函數對於GROUP BY子句定義的每個組各返回一個結果”,根據部門分組,對每個部門返回一個結果,就是每個部門的最高薪水。
2、查詢公司2010年入職的各個部門每個級別裏的最高薪水
SELECT DEPT, EDLEVEL, MAX( SALARY ) AS MAXIMUM
FROM staff
WHERE HIREDATE > ‘2010-01-01‘
GROUP BY DEPT, EDLEVEL
ORDER BY DEPT, EDLEVEL
3、尋找雇員平均工資大於3000的部門的最高和最低薪水:
SELECT DEPT, MAX( SALARY ) AS MAXIMUM, MIN( SALARY ) AS MINIMUM
FROM staff
GROUP BY DEPT
HAVING AVG( SALARY ) >3000
ORDER BY DEPT
註:WHERE語句在GROUP BY語句之前;SQL會在分組之前計算WHERE語句。
HAVING語句在GROUP BY語句之後;SQL會在分組之後計算HAVING語句。
group by 用法