分享

SQL查询之分类汇总(分组)关键字

 L罗乐 2018-07-07



最近老嘀咕power query

把SQL语句都给忘得一愣一愣的

今天有个哥们问下怎么用SQL分类汇总

竟然半天没转过弯来

正好写下此篇对自己加以巩固


SQL中的分类汇总就是分组

有个关键字叫'Group By'

一般把这个关键字放在select语句中from关键字的后面

select 字段名 from 表名 group by 分组字段名

嗯,大概就是这么个顺序


光说不练假把式

还是上个例子更直观

有一张'tushu.dbf'表中有'作者'和'书名'两个字段

现在想通过分类汇总得出每位作者各著作了几本图书



标准SQL查询语句为:

select 作者,count(书名) as 图书个数 from tushu group by 作者

select的含义:查询字段名'作者',通过count()聚合函数统计'书名'的个数并重命字段名为'图书个数';

from的含义:查询的表名为'tushu';

group by的含义:把前面查询出来的结果以'作者'字段分组(分类汇总)




在Group by关键字中还有一个排序关键字Order By

如果不写上,默认是升序,比如像上图,就是默认升序排列'作者'字段

如果要降序,就不能省略了

升序:Order By 排序字段名 asc (如省略为默认)

降序:Order By 排序字段名 desc

select 作者,count(书名) as 图书个数 from tushu group by 作者 order by 作者 desc

看,金庸和古龙的位置是不是调换了位置





需要注意的是Group by关键字必须与聚合函数配合使用

那么聚合函数有哪些呢?

列几个常用的吧

AVG 求平均值

MAX 求最大值

MIN 求最小值

SUM 求和(最常用,60%左右的Group By就是为了求和)

COUNT 求数量(次常用,至少20%以上的Group By是为了计数)

换句话理解这个注意事项就是:

Group By后面要分组的字段必须在select关键字后面出现,或套上聚合函数出现,否则SQL语句会报错



Group By也是学习SQL查询必须熟悉的一个关键字

查询就是取数据

取数据就有各类分组的需求

常用必备,没有之一

试想我们的汇编怎么做?

是不是下面的流程:

数据清洗-数据连接-分类汇总-导出Excel-排版美化


再说个题外话

Excel中的SQL与这个大同小异

只需给From关键字后面的表名包一对中括号哟








    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多