BI-SQL丨JOIN

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的初学者。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fabric丨白茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值