分组聚合函数详细讲解

分组聚合函数详细讲解

ID:15081639

大小:4.57 MB

页数:22页

时间:2018-08-01

分组聚合函数详细讲解_第1页
分组聚合函数详细讲解_第2页
分组聚合函数详细讲解_第3页
分组聚合函数详细讲解_第4页
分组聚合函数详细讲解_第5页
资源描述:

《分组聚合函数详细讲解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、聚合函数总结在实际SQL应用中,经常需要进行分组聚合,即将查询对象按一定条件分组,然后对每一个组进行聚合分析。比如我们常见的一些分组计算需求:求某个部门的薪资总和,薪资平均值,薪资最大值等等。分组聚合函数也可称之为多行函数,它的输入是多个行构成得一个行集(这个行集可以是一张表的所有行,也可以是按照某个维度进行分组后的某一组行),而输出都是一个值。1.分组聚合函数语法以及SQL语句执行过程SQL中使用分组聚合函数的语法SELECT[column,]group_function(column),...

2、FROMtable[WHEREcondition][GROUPBYcolumn][having][ORDERBYcolumn];在select语句中使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。查询语句的select和groupby,having,Orderby子句是分组聚合函数唯一出现的地方,在where子句中不能使用分组聚合函数。selectdepartment_id,sum(salary)fromemplo

3、yeeswheresalary>10000groupbydepartment_idhavingsum(salary)>11000orderbysum(salary)sql语句执行过程(1)按select找到where满足条件的元组形成结果表。相当于:selectdepartment_id,salaryfromemployeeswheresalary>10000(2)将结果表按group中指定的列进行分组,该属性列值相等的元组为一组,通常会在每组中作用集函数。(如果group指定多个列,先按第一列分

4、组,然后在每个组中再按第二列分组)相当于:selectdepartment_id,sum(salary)fromemployeeswheresalary>10000groupbydepartment_id(3)如果group子句带having短语,则分组聚合后只有满足having指定条件的组才输出。相当于:selectdepartment_id,sum(salary)fromemployeeswheresalary>10000groupbydepartment_idhavingsum(salary

5、)>11000(4)如果有order子句,则将结果表按order子句指定的列升序或降序排序。相当于:selectdepartment_id,sum(salary)fromemployeeswheresalary>10000groupbydepartment_idhavingsum(salary)>11000orderbysum(salary)2.groupby可选项什么时候可以无:非分组查询中非分组查询中,聚合函数实际上等于将表中所有记录作为一个组来运算。此时在select列表中指定的列只能是包含

6、聚组函数,不能包含数据表本身的列。比如求所有员工的总工资。selectsum(salary)fromemployees什么时候必须有:在分组查询中分组查询中,聚合函数是将数据按分组关键字分组,然后对每一组的函数自变量中的内容进行聚合运算。Select子句字段可以是分组关键字(groupby后面字段)和聚合函数。比如求各个部门员工总工资。注意:a.如果没有groupby子句,select列表中不允许出现字段与分组函数混用的情况。b.在带有groupby子句的查询语句中,在select列表中指定的列要

7、么是groupby子句中指定的列,要么包含聚组函数。出现在select列表中的字段,如果不是包含在分组函数中,那么该字段必须同时出在Groupby子句中。c.groupby后面字段的顺序不同分组结果不同。3.条件查询(where和having)在一个sql语句中可以有where子句和having子句。having与where子句类似,均用于设置限定条件。where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示

8、特定的行。having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。groupby可以与where来搭配使用,where只能在groupby的前面,groupby后面不能使用where;where只针对单记录,不针对记录组的搜索条件,子句能包括分组函数,当用户要指定一个记录组的搜索条件只能使用having表示。4.常用的聚合函数4.1计数(COUNT)COUNT()函数用来计算表中记录的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。