对比 Excel Power Query 学习 SQL
今天通过Excel Power Query中的两个函数来学习一下SQL中的两个子句。
关于连接,在各个数据工具中都有一些函数或者方法来实现。比如在Excel Power中有两个函数,List.Union与List.Combine;在SQL中也有两个句子,一个是Union,另外一个是Union All.
下面通过一个简单的例子,来学习一下这两个工具中关于合并的用法。
Excel Power Query
如下图所示,首先创建一个lsit。
= {"Excel","SQL","Python","Java","R"}
再写另外一个List,如下图所示。
= {"Excel","SQL","Python","Power BI","R","Tabeau","SPSS","SAS"}
使用List.Union将上述两个List进行连接。
let
list1 = {"Excel","SQL","Python","Java","R"},
list2 = {"Excel","SQL","Python","Power BI","R","Tabeau","SPSS","SAS"},
连接 = List.Union({list1,list2})
in
连接
如果如下图所示:
从图中我们可以看出List.Union函数对于两个List中的数据去重后进行了连接。
通常情况下该函数的语法为:
function(lists as list,optional equationCriteria as any) as list
需要注意的是第一个参数的类型是一个List。
然后接下来我们再使用Lict.Combine函数进行连接。
= List.Combine({list1,list2})
使用List.Combine函数进行连接时,是把所有的数据无任何的操作就连接在一起了。这个函数较List.Union函数比较简单。常用的语法为:
function (lsits as list) as list
通过上面的例子可以看出。List.Union函数在连接两个List时具有去重功能,而List.Combine函数则没有。
SQL
如下图所示,有两张表分别为sht001与sht002。如下图所示:
sht001
sht002
如下图所示,先使用union将两张表连接起来。
select
title
from
mydata.sht001
union
select
title
from
mydata.sht002
结果如下图所示:
从结果可以看出。union同样具有去重的功能,去重后将查询的字段连接。
再来看一下union all的功能。
select
title
from
mydata.sht001
union all
select
title
from
mydata.sht002
从下面的结果可以看出union all是将所有的记录进行连接,并没有去重操作。
Union:对两个结果集进行并集操作,不包含重复行;
Union All:对两个结果集进行并集操作,包括重复行.
当然在Excel Power Qeury中还有Table.Combine与Record.Combine等函数。
Excel和PowerBI聚焦:小必
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)