sql group by 用法与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
时间: 2024-09-30 01:47:38

sql group by 用法与group by 语法的相关文章

sql GROUP BY用法

group函数是对数据集按照某个字段或者表达式进行分组,获得一组组的集合,然后从每组中取出一个 指定字段或者表达式的值,放到单元格中进行扩展,扩展出来的每个单元格都保留了一个指针指向当前的组集, 该组集称为当前组.        因此在附属单元格中,需要对该组集进行操作时,不需要用任何条件和主单元格关联了,如果加设了条件,反倒画蛇添足,导致报表引擎还对组集中的记录进行遍历检索.   正确的group 用法:   不合理的group用法:         group函数的原理图示:  group

sql中的 where 、group by 和 having 用法解析

废话不多说了,直接给大家贴代码了,具体代码如下所示: --sql中的 where .group by 和 having 用法解析 --如果要用到group by 一般用到的就是"每这个字" 例如说明现在有一个这样的表:每个部门有多少人 就要用到分组的技术 select DepartmentID as '部门名称',COUNT(*) as '个数' from BasicDepartment group by DepartmentID --这个就是使用了group by +字段 进行了分组

MySQL Group By用法

MySQL Group By用法 我们现在回到函数上.记得我们用 SUM 这个指令来算出所有的 Sales (营业额)吧!如果我们的需求变成是要算出每一间店 (store_name) 的营业额 (sales),那怎么办呢?在这个情况下,我们要做到两件事:第一,我们对于 store_name 及 Sales 这两个栏位都要选出.第二,我们需要确认所有的 sales 都要依照各个 store_name 来分开算.这个语法为: SELECT "栏位1", SUM("栏位2"

SQL 相关子查询与group by的问题,谢谢指导

问题描述 SQL 相关子查询与group by的问题,谢谢指导 student(sno,sname,sdept) course(cno,cname,ccredit) sc(sno,cno,grade) 1.查询每个系的最高成绩 select x.sno,sdept,grade from student x,sc where x.sno = sc.sno and grade =(select max(grade) from sc,student where sc.sno=student.sno a

java算法-请使用java去实现SQL的order by和group by,多个条件中可以为空值

问题描述 请使用java去实现SQL的order by和group by,多个条件中可以为空值 select * from user order by userid,name 在程序中就是user对象userid.name属性,我需要通过这两个属性排序 select sum(age) from user group by userdep; 同样在程序中存在这user bean里面有userdep这属性,根据算法分组获取每个部门的成员总和

sql中 order by 和 group by的区别_MsSql

order by 从英文里理解就是行的排序方式,默认的为升序. order by 后面必须列出排序的字段名,可以是多个字段名. group by 从英文里理解就是分组.必须有"聚合函数"来配合才能使用,使用时至少需要一个分组标志字段. 什么是"聚合函数"?           像sum().count().avg()等都是"聚合函数"          使用group by 的目的就是要将数据分类汇总. 一般如: select 单位名称,coun

sql中 order by 和 group by的区别

order by 从英文里理解就是行的排序方式,默认的为升序. order by 后面必须列出排序的字段名,可以是多个字段名. group by 从英文里理解就是分组.必须有"聚合函数"来配合才能使用,使用时至少需要一个分组标志字段. 什么是"聚合函数"? 像sum().count().avg()等都是"聚合函数" 使用group by 的目的就是要将数据分类汇总. 一般如: select 单位名称,count(职工id),sum(职工工资) f

asp.net使用LINQ to SQL连接数据库及SQL操作语句用法分析_实用技巧

本文实例讲述了asp.net使用LINQ to SQL连接数据库及SQL操作语句用法.分享给大家供大家参考,具体如下: LINQ简介 LINQ:语言集成查询(Language INtegrated Query)是一组用于c#和Visual Basic语言的扩展.它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据. LINQ是一门查询语言,和SQL一样,通过一些关键字的组合,实现最终的查询. LINQ的分类 LINQ to Object LINQ to XML LIN

SQL 中STUFF用法_MsSql

1.作用 删除指定长度的字符,并在指定的起点处插入另一组字符. 2.语法 STUFF ( character_expression , start , length ,character_expression ) 3.示例 以下示例在第一个字符串 abcdef 中删除从第 2 个位置(字符 b)开始的三个字符,然后在删除的起始位置插入第二个字符串,从而创建并返回一个字符串 SELECT STUFF('abcdef', 2, 3, 'ijklmn') GO 下面是结果集 aijklmnef 4.参