sql 與group by 是用來數據分組的,下面我們看數據庫表稱為EmployeeHours存放每一個公司員工的 日常 時間:
Employee Date Hours John Smith 5/6/2004 8 Allan Babel 5/6/2004 8 Tina Crown 5/6/2004 8 John Smith 5/7/2004 9 Allan Babel 5/7/2004 8 Tina Crown 5/7/2004 10 John Smith 5/8/2004 8 Allan Babel 5/8/2004 8 Tina Crown 5/8/2004 9
如果公司經理想要得到的所有員工的所有工作時間疊加,他需要執行下列SQL語句:
SELECT SUM (Hours)
FROM EmployeeHours
但是,如果經理想要得到他的員工為每個所有時間的總和?
為此,他需要修改他的SQL查詢和使用SQL的GROUP BY語句:
SELECT Employee, SUM (Hours)
FROM EmployeeHours
GROUP BY Employee
The result of the SQL expression above will be the following:
Employee Hours John Smith 25 Allan Babel 24 Tina Crown 27
該SQL的GROUP BY子句可以用於其他SQL聚合函數,例如的SQL的AVG:
SELECT Employee, AVG(Hours)
FROM EmployeeHours
GROUP BY Employee
Employee Hours John Smith 8.33 Allan Babel 8 Tina Crown 9
在我們的雇員表的日期專欄中,我們也可以 分組
SELECT Date, SUM(Hours)
FROM EmployeeHours
GROUP BY Date
Here is the result of the above SQL expression:
Date Hours 5/6/2004 24 5/7/2004 27 5/8/2004 25