BI-SQL丨JOIN

作者: Fabric丨白茶 | 来源:发表于2021-11-07 13:58 被阅读0次

JOIN

JOIN在SQL Server中是一个很重要的概念。

JOIN经常用于将两个表或者多个表通过主外键关联进行组合查询。

在PowerBI中也有类似的概念,比如可以通过GENERATE函数和CROSSJOIN函数可以组成笛卡尔积,可以通过RELATED返回多端的维度。最直观类似的,是白茶之前描述的《INTERSECT函数》

区别在于,事实表与维度表中的主外键通常是无冗余的,因此在SQL Server中使用JOIN可以避免出现重复数据的情况。

基础语法

语法:

SELECT 列名称(*) FROM 表1名称 (INNER) JOIN 表2名称 ON 表1名称.[列字段] = 表2名称.[列字段]

注意

INNER默认是可以省略的,JOIN等同于INNER JOIN。

使用实例

案例数据:

在白茶本机的数据库中,存在名为“TEST”的数据库,存在名为“产品表”的维度表和名为“销售明细”的事实表。

例子1:

在PowerBI中,将“产品表”中的[销售价]与“销售明细”组合,一起导入。

SELECT 销售明细.* , 
              产品表.[销售价]
FROM 销售明细
INNER JOIN 产品表 
ON 销售明细.[商品名称]=产品表.[商品名称] 
ORDER BY 销售明细.[商品名称]

结果如下:

例子2:

在PowerBI中,将“销售明细”中的[销售数量]汇总后与“产品表”匹配导入到PowerBI中。

SELECT 产品表.* ,
       SUMMARIZE.[数量]
FROM 产品表
INNER JOIN 
    (SELECT 销售明细.[商品名称] ,
         SUM(销售明细.[销售数量]) AS 数量
    FROM 销售明细
    GROUP BY  销售明细.[商品名称]) AS SUMMARIZE
ON 产品表.[商品名称]=SUMMARIZE.[商品名称]

结果如下:

注:
这种写法采用的是先汇总,后JOIN。
汇总后的大表变成了小表,性能上提升比较多。
此种解法为SQL的标准解法。

当然,JOIN的变体还有其他几种:LEFT JOIN、RIGHT JOIN、FULL JOIN。这个我们后面再说。

这里是白茶,一个PowerBI的初学者。


相关文章

  • BI-SQL丨JOIN

    JOIN JOIN在SQL Server中是一个很重要的概念。 JOIN经常用于将两个表或者多个表通过主外键关联进...

  • BI-SQL丨不同的JOIN

    不同的JOIN 白茶在之前描述过JOIN的一些基本用法,但是实际上JOIN有几种类型不同的变体。 不同的JOIN,...

  • BI-SQL丨AND & OR & IN

    AND函数 & OR函数 & IN函数 AND函数、OR函数和IN函数都可以理解是WHERE函数的补充,当然也可以...

  • BI-SQL丨WITH AS

    WITH AS 在DAX函数中,有些时候我们写的DAX逻辑引用次数过多,或者是性能过差,我们都会选择使用VAR来定...

  • BI-SQL丨INSERT INTO

    INSERT INTO语句 INSERT INTO语句通常可以用来在SQL的查询中针对表插入某些行数据。 看到这里...

  • BI-SQL丨ORDER BY

    ORDER BY语句 ORDER BY语句,在SQL中通常可以用来作为查询结果的排序依据。当然在PowerBI的D...

  • BI-SQL丨WHERE

    WHERE函数 WHERE函数,属于常用函数之一,通常可以用来进行条件查询。 其用途类似于DAX函数中的Filte...

  • BI-SQL丨SELECT

    白茶之前介绍过,无论是从PowerBI的角度来看,还是从职业发展规划的角度来讲,一个不会SQL的PowerBI分析...

  • BI-SQL丨DISTINCT

    DISTINCT函数 在SQL中,DISTINCT函数也是常见函数之一,通常可以用来进行对表或者列进行去重操作。 ...

  • BI-SQL丨TOP

    TOP函数 TOP函数,属于高级函数之一,通常可以用来返回固定数量的行数。 对于一定数据量级的事实表来说,此函数可...

网友评论

    本文标题:BI-SQL丨JOIN

    本文链接:https://www.haomeiwen.com/subject/jpobmltx.html