ad

实战之路《Excel 数据处理与分析实战宝典_第2版》_2.7.5 联合查询、子查询

网友投稿 125 2023-11-13

【摘要】 本书摘自《Excel 数据处理与分析实战宝典_第2版》一书中第2章,第7节,耿勇著。

2.7.5 联合查询、子查询

1. 联合查询

面对数据量庞大的众多工作簿时,我们常常需要进行合并后再汇总,这时用 SQL 的联合查询 功能可以实现数据合并和汇总。所谓联合查询,就是合并多个查询的结果集,这些查询具有相同 的字段数目且包含相同或可以兼容的数据类型。

实战之路《Excel 数据处理与分析实战宝典_第2版》_2.7.5  联合查询、子查询

联合查询的特点是,使用联合查询需要保证查询的字段数相同,且包含相同或兼容的数据类 型。在联合查询中,最终返回的记录的字段名称以第一个查询的字段名称为准;其余进行联合查询,使用的字段别名将被忽略。

union 和 union all 的区别在于,union 会将所有进行联合查询的表记录进行汇总,并返回不重 复记录(即重复记录只返回其中一条记录),同时对记录进行升序排序;而 union all 则只将所有 进行联合查询的表的记录进行汇总,不论记录是否重复,均不对记录进行排序。

通过as 别名的方式在合并工作表中新增了一个“分厂”的字段,通过聚合函数 SUM 和 as 别 名方式对一些数值的字段进行分类汇总。

需要注意的是,from 后面的工作表名的表达方式为“[工作簿所在的路径].[工作表名$]”。由 于有多个工作簿需要合并,因此指定数据源时要指明路径,否则无法导入数据。

2. 子查询

常用的子查询语句有以下3种,其语法如下。

★ select (子查询) {as 字段} from[表名S]

★ select 字段 from[表名$]where 字段运算符{谓词}(子查询)

★ select 字段 from[表名$]where {not}exists(子查询)

实例1:取不重复编码的数据记录

在如图2-135所示的数据表中,商品编码有大量的重复,表中共有18003条记录,但只选取 月份最大的数据记录,保证查询数据后的每个商品编码只有一条记录。

2.7.6 SQL 与数据透视表

通过对前面SQL 查询语句的学习,我们已经注意到在“导入数据”界面的“请选择该数据在工作簿中的显示方式”中存在“数据透视表”按钮选项,这说明了数据透视表与 SQL之间是密不 可分的。由于数据透视表是一种快速分类汇总及建立交叉列表的交互式动态表格,而 SQL 在读取 数据方面能与其他外部数据源实现无缝对接;因此,如果能将数据透视表与 SQL 完美融合,则可 以让数据透视表如虎添翼。

实 例 1 : 利 用 SQL 语句创建动态数据透视表

由于一般数据透视表的创建均在数据源中选择数据范围,当数据记录随着时间流逝而增加时, 需要多次重新选择数据源的范围,而 SQL 语句读取数据只需设定一次即可,而且不受数据源的数 据范围大小变动的限制。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:打开《Python 编程与应用实践》_成为Python大佬_4.4 迭代器
下一篇:学习《Python网络爬虫 从入门到精通》_掌握爬虫的精髓_8.1 关于测试
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×