sql中groupby的使用

sql中groupby的使用

ID:34726084

大小:90.67 KB

页数:6页

时间:2019-03-10

sql中groupby的使用_第1页
sql中groupby的使用_第2页
sql中groupby的使用_第3页
sql中groupby的使用_第4页
sql中groupby的使用_第5页
资源描述:

《sql中groupby的使用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、SQL中GroupBy的使用·1、概述·2、原始表·3、简单GroupBy·4、GroupBy和OrderBy·5、GroupBy中Select指定的字段限制·6、GroupByAll·7、GroupBy与聚合函数·8、Having与Where的区别·9、Compute和ComputeBy1、概述“GroupBy”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。2、原始表3、简单GroupBy示例1s

2、elect类别,sum(数量)as数量之和fromAgroupby类别返回结果如下表,实际上就是分类汇总。4、GroupBy和OrderBy示例2select类别,sum(数量)AS数量之和fromAgroupby类别orderbysum(数量)desc返回结果如下表在Access中不可以使用“orderby数量之和desc”,但在SQLServer中则可以。5、GroupBy中Select指定的字段限制示例3select类别,sum(数量)as数量之和,摘要fromAgroupby类别orderby

3、类别desc示例3执行后会提示下错误,如下图。这就是需要注意的一点,在select指定的字段要么就要包含在GroupBy语句的后面,作为分组的依据;要么就要被包含在聚合函数中。6、GroupByAll示例4select类别,摘要,sum(数量)as数量之和fromAgroupbyall类别,摘要示例4中则可以指定“摘要”字段,其原因在于“多列分组”中包含了“摘要字段”,其执行结果如下表“多列分组”实际上就是就是按照多列(类别+摘要)合并后的值进行分组,示例4中可以看到“a,a2001,13”为“a,a

4、2001,11”和“a,a2001,2”两条记录的合并。SQLServer中虽然支持“groupbyall”,但MicrosoftSQLServer的未来版本中将删除GROUPBYALL,避免在新的开发工作中使用GROUPBYALL。Access中是不支持“GroupByAll”的,但Access中同样支持多列分组,上述SQLServer中的SQL在Access可以写成select类别,摘要,sum(数量)AS数量之和fromAgroupby类别,摘要7、GroupBy与聚合函数在示例3中提到grou

5、pby语句中select指定的字段必须是“分组依据字段”,其他字段若想出现在select中则必须包含在聚合函数中,常见的聚合函数如下表:函数作用支持性sum(列名)求和    max(列名)最大值    min(列名)最小值    avg(列名)平均值    first(列名)第一条记录仅Access支持last(列名)最后一条记录仅Access支持count(列名)统计记录数注意和count(*)的区别示例5:求各组平均值select类别,avg(数量)AS平均值fromAgroupby类别;示例6

6、:求各组记录数目select类别,count(*)AS记录数fromAgroupby类别;示例7:求各组记录数目8、Having与Where的区别·where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。·having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件过滤出特定的组,也可以使用多个分组标准进行分组。示例8select类别,sum(

7、数量)as数量之和fromAgroupby类别havingsum(数量)>18示例9:Having和Where的联合使用方法select类别,SUM(数量)fromAwhere数量gt;8groupby类别havingSUM(数量)gt;109、Compute和ComputeByselect*fromAwhere数量>8执行结果:示例10:Computeselect*fromAwhere数量>8computemax(数量),min(数量),avg(数量)执行结果如下:compute子句能够观察“查询结

8、果”的数据细节或统计各列数据(如例10中max、min和avg),返回结果由select列表和compute统计结果组成。示例11:ComputeByselect*fromAwhere数量>8orderby类别computemax(数量),min(数量),avg(数量)by类别执行结果如下:示例11与示例10相比多了“orderby类别”和“...by类别”,示例10的执行结果实际是按照分组(a、b、c)进行了显示,每组都是由改组数据列表和改组数统计结果

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

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

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