Excel 执行SQL查询函数

应用开发2025-11-05 12:33:538

之前给大家介绍过,查询利用Excel内置的函数SQL查询引擎,来执行查询操作。查询通过编写SQL查询语句,函数可以完成Excel内置函数不能够完成的查询工作。带好笔纸做笔记吧,函数下面通过几个案例,查询介绍SQL查询语句的函数基本用法,如果有类似的查询工作,只需要更改几个地方就可以了。函数当然如果条件允许,查询还是函数建议你系统学习一下SQL语句,提升下综合技能。查询因为Excel内置引擎网络上资料很少,函数大家可以以SQLSERVER (都是查询微软的产品,虽有区别,但还是有很大的相通的地方的)教程为模板学习,网络上资料很多。

使用Excel进行数据处理,不外乎两种应用场景:

数据匹配(数据查找)数据聚类(求和,平均,总数)

数据素材

数据素材为从GitHub上获取关于COVID-19数据集。如果大家需要素材,高防服务器请留言回复“ETSQL”获取练习素材。

这里面要用到一个函数ETSQL,它是EFunction内置的函数。

数据素材包括全球和国内的数据

案例1:数据匹配

“国家”Sheet表格内对应的是,各个省份每天累计数据和新增数据。假如需要提取出来上海每天的数据信息。则SQL语句为:

复制select * from [国家$] as a where a.省份=上海市1.

对于学习过SQL语句的朋友来说,Excel内置引擎,SQL语句和其他关系数据库的查询语法基本相同。对于未接触SQL语句的朋友来说,可以这样简单理解。

select 关键词是必须的,表示要查询一个信息关键词,每个语句必须有的。from 关键词也是必须的,表示从什么地方查询,Excel表格表示从“国家”这个Sheet之中查询。where 关键词也是必须的免费信息发布网,表示是查询的筛选条件,它后面跟着的就是筛选条件,案例之中,要求“国家”Sheet表之中,省份等于“上海市”,如果有多个条件使用关键词and 或者or进行连接。

通过以上语句,就能够将上海每天的数据全部提取出来。

从“国家”表格之中提取出上海所有信息

如果要提取出来上海市,2020-40-20日之后所有的数据,则上述SQL语句只需要变为

select * from [国家$] as a where a.省份=上海市 and a.日期>43941。

对于熟悉MySQL或者MsSQL的朋友来说,Excel之中没有“时间”类型数据,Excel之中只有数值类型数据,Excel之中是以数字表示时间的,43941就对应2020-40-20这一天。当然在实际应用过程之中,可以使用公式进行拼接SQL语句,Excel会自动将日期转化为数字类型数据处理的。

案例之中,就是将B1和F1单元格内的IT技术网数据,进行拼接到A1单元格之中,Excel自动生成SQL完整语句。

SQL拼接

如果学习好了SQL查询语句后,再配合ETSQL函数,Excel之中所有匹配函数就可以说拜拜了。当然SQL语句编写起来没有专用的函数方便。但SQL很适合用来进行复杂数据匹配工作,这点VLOOKUP,match等函数,是万万没有这个技能的。所以说没有最好的工具,只有适合的工具。

案例2:数据聚合(求和,平均、计数)

如果要统计上海市,每天新增人数的累加和-累计确诊人数时,这个时候,就可以应用到SQL另外一个强大的功能,数据聚合,这个功能很像Excel自带的透视表功能,这相当于透视表函数化了,我们把Excel语句写好了,只需要F9刷新数据就OK了。基本语句为

select sum(当日新增) from [国家$] as a where a.省份=上海市

上述语句通过SQL引擎的sum函数(需要注意这个sum和Excel函数SUM的区别),统计“当日新增”这个字段数据的和,条件是省份为上海市。

如果说我要统计上海市每天的平均新增人数,该怎么写:

select avg(当日新增) from [国家$] as a where a.省份=上海市

只需要把sum替换为avg求平均函数就OK了。如果要统计上海市有多少天有新增确诊记录时,则条件SQL语句为:

select count(当日新增) from [国家$] as a where a.省份=上海市 and a.当日新增>0

count函数为计数统计函数,同时添加了另外一个条件,就是添加了当日新增人数大于“0”值的数据。

以上介绍的聚合,是通过where条件来了,如果说我要统计全国所有省份总确诊人数,总不能连续写30多个SQL语句吧!

正常的SQL语句为:select a.省份,sum(a.当日新增) from [国家$] as a group by a.省份

这个使用到的是group by 关键词。这个特点是不是很像Excel的透视表。group by后面相当于透视表“行”条件,select 后面相当于透视表的“列”条件,sum或者count或者avg相当于透视表的“值”

统计累计确诊人数

以上统计出来的结果是杂乱无章的,这个时候稍加改动就可以排序了

select a.省份,sum(a.当日新增) from [国家$] as a group by a.省份 order by sum(a.当日新增) desc

排好序的统计结果

order by 关键词后就是排序条件,将统计出来的 sum(a.当日新增) 进行排序,desc表示降序。如果要升序的话,可以省略或者写上asc。为了增加SQL语句可读性,建议你写上。

小结

通过以上介绍,可以知道利用ETSQL一个函数,通过不同的SQL语句,就可以完成Excel自带的函数几乎所有功能,是不是很强大。这里并不是说不用学习其他函数了,SQL语句适合用来解决复杂的问题,以下列出的案例需求,Excel单独一个函数是不能够完成的。

截止到某天总确诊人数的TOP3省份匹配出来每个省份新增确认记录是哪天匹配出来大于平均值所有省份

ETSQL复杂统计

因为SQL是系统性知识,在这里码字确实困难。不知有无必要录制视频,来系统介绍Excel内置SQL引擎基本知识。大家如果有需要,请留言“SQL视频关键词”,告知下,同时添加关注,以免视频更新时,错过了。

本文地址:http://www.bhae.cn/news/023a5699920.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

全站热门

LVM是Logical Volume Manager(逻辑卷管理器)的简写,又译为逻辑卷宗管理器、逻辑扇区管理器、逻辑磁盘管理器。是Linux核心所提供的逻辑卷管理(Logical Volume Management)功能。它在硬盘的硬盘分区之上,又创建了一个逻辑层以方便系统管理硬盘分区系统。最早由IBM开发,在AIX系统上实现,OS/2操作系统与HP-UX也支持这个功能;在1998年,Heinz Mauelshagen根据HP-UX上的逻辑卷管理器,写作出第一个Linux版本的逻辑卷管理器;并将其发布到Linux社区中,它允许用户在Linux系统上用简单的命令行管理一个完整的逻辑卷管理环境。LVM的优点:它是建立在物理存储设备之上的一个抽象层,允许用户生成逻辑存储卷,与直接使用物理存储在管理上相比,提供了更好灵活性;LVM将存储虚拟化,使用逻辑卷,用户不会受限于物理磁盘的大小;另外,与硬件相关的存储设置被器隐藏,用户可以不用停止应用或卸载文件系统来调整卷大小或数据迁移,可以减少操作成本。LVM与直接使用物理存储相比,有以下优点:1、  灵活的容量当使用逻辑卷时,文件系统可以扩展到多个磁盘上,你可以聚合多个磁盘或磁盘分区成单一的逻辑卷.2、  可伸缩的存储池;你可以使用简单的命令来扩大或缩小逻辑卷大小,不用重新格式化或分区磁盘设备.3、  在线的数据再分配你可以在线移动数据,数据可以在磁盘在线的情况下重新分配.比如,你可以在线更换可热插拔的磁盘.4、  方便的设备命名;逻辑卷可以按你觉得方便的方式来起任何名称.5、  磁盘条块化你可以生成一个逻辑盘,它的数据可以被条块化存储在2个或更多的磁盘上.这样可以明显提升数据吞吐量.6、  镜像卷逻辑卷提供方便的方法来镜像你的数据.7、  卷快照使用逻辑卷,你可以获得设备快照用来一致性备份或者测试数据更新效果而不影响真实数据.2.版本:LVM1 最初的LVM与1998年发布,只在Linux内核2.4版本上可用,它提供最基本的逻辑卷管理。LVM2 LVM-1的更新版本,在Linux内核2.6中才可用,它在标准的LVM-1功能外还提供了额外的功能。查看版本:复制代码代码如下:复制代码代码如下:复制代码代码如下:逻辑卷的创建,就是将多块硬盘创建物理卷,而将这些物理卷以逻辑的形式总成一个容器,然后从这个容器里面创建大小不同的分区文件,而这个容器就是所谓的卷组(VG),而从这个容器里创建大小不同的分区文件,这个分区文件就叫做逻辑卷。LVM实现逻辑卷镜像2、将sdb、sdc、sdd、sde 创建物理卷,将sdb、sdc、sdd 添加卷组到vmTest复制代码代码如下:复制代码代码如下:复制代码代码如下:复制代码代码如下:复制代码代码如下:复制代码代码如下:复制代码代码如下:复制代码代码如下:复制代码代码如下:复制代码代码如下:复制代码代码如下:复制代码代码如下: 复制代码代码如下:复制代码代码如下:复制代码代码如下:复制代码代码如下:复制代码代码如下:复制代码代码如下:复制代码代码如下:复制代码代码如下:复制代码代码如下:复制代码代码如下:复制代码代码如下:复制代码代码如下:复制代码代码如下:复制代码代码如下:[root@node4 lvmTest]#[root@node4 lvmTest]# lvdisplay --- Logical volume --- LV Path                /dev/vgTest/lvTest LV Name                lvTest VG Name                vgTest LV UUID                a8kDmI-R3ls-SfKJ-qx3d-1Tbb-wPAd-TJcQfn LV Write Access        read/write LV Creation host, time node4.lansgg.com, 2015-09-10 20:50:41 +0800 LV Status              available # open                1 LV Size                1.00 GiB Current LE            256 Mirrored volumes      2 Segments              1 Allocation            inherit Read ahead sectors    auto - currently set to    256 Block device          253:5

NoSQL中负载均衡系统如何解决热点问题,提高可用性?

超详细的PG数据存储结构:逻辑结构和物理存储总结

SpringBoot 巧用全局处理器,优雅的解决参数校验!

小米199耳机(一款性价比高的音乐伴侣)

数据库并发2万就跪了?你需要这份指导性的知识框架

音乐研发必备:理解 MIDI 协议与标准 MIDI 文件格式

MySQL命令,一篇文章替你全部搞定

友情链接

滇ICP备2023000592号-9