在SQL的 語句一起使用同樣數目的SQL聚合函數提供分組的某些數據庫教程表列(第結果數據集方法)。
最好的方法如何以及何時使用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