在SQL的语句一起使用同样数目的SQL聚合函数提供分组的某些数据库教程表列(第结果数据集方法)。
GROUP BY
最好的方法如何以及何时使用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 |