对比 Excel Power Query 学习 SQL

file
今天通过Excel Power Query中的两个函数来学习一下SQL中的两个子句。
关于连接,在各个数据工具中都有一些函数或者方法来实现。比如在Excel Power中有两个函数,List.Union与List.Combine;在SQL中也有两个句子,一个是Union,另外一个是Union All.
下面通过一个简单的例子,来学习一下这两个工具中关于合并的用法。

Excel Power Query
如下图所示,首先创建一个lsit。

= {"Excel","SQL","Python","Java","R"}

file
再写另外一个List,如下图所示。

= {"Excel","SQL","Python","Power BI","R","Tabeau","SPSS","SAS"}

file
使用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
    连接

如果如下图所示:
file
从图中我们可以看出List.Union函数对于两个List中的数据去重后进行了连接。

通常情况下该函数的语法为:

function(lists as list,optional equationCriteria as any) as list

需要注意的是第一个参数的类型是一个List。
然后接下来我们再使用Lict.Combine函数进行连接。

= List.Combine({list1,list2})

file
使用List.Combine函数进行连接时,是把所有的数据无任何的操作就连接在一起了。这个函数较List.Union函数比较简单。常用的语法为:

function (lsits as list) as list
通过上面的例子可以看出。List.Union函数在连接两个List时具有去重功能,而List.Combine函数则没有。

SQL

如下图所示,有两张表分别为sht001与sht002。如下图所示:

sht001
file
sht002
file

如下图所示,先使用union将两张表连接起来。

select
  title
from
  mydata.sht001
union
select
  title
from
  mydata.sht002

结果如下图所示:
file
从结果可以看出。union同样具有去重的功能,去重后将查询的字段连接。

再来看一下union all的功能。

select
  title
from
  mydata.sht001
union all
select
  title
from
  mydata.sht002

从下面的结果可以看出union all是将所有的记录进行连接,并没有去重操作。
file
Union:对两个结果集进行并集操作,不包含重复行;
Union All:对两个结果集进行并集操作,包括重复行.
当然在Excel Power Qeury中还有Table.Combine与Record.Combine等函数。

Excel和PowerBI聚焦:小必