Power BI是微软开发的一款功能非常强大的的BI工具,可以制作非常美观的报表,但这个工具的核心是DAX,翻译为中文就是 数据分析表达式,有点类似于excel函数,但又很不一样。
DAX中的很多功能可以与SQL对应,但差异也很大。
下面就来讲一讲 用Power BI中DAX的selectcolumns函数+related函数,实现SQL中的join表关联。
1、下载power bi
可以在这个链接中下载中文版:https://powerbi.microsoft.com/zh-cn/downloads/
安装过程只需要不断点击“下一步” 按钮,就可以了,非常方便。
2、输入数据
这里不一定要输入,也可以先在excel等工具中输入数据,然后再导入就可以。
这里通过如下过程输入2个表的数据。
(1)打开 Power BI Desktop,然后 点击 “输入数据” 按钮,输入数据后,名称 填写 “销售表”,点击加载:
(2) 再增加一张 产品表,如下:
3、 建立模型
通常情况下,当我们增加表,输入数据后,power bi会自动检查表之前的关系,点击红色框的图标,显示如下图:
两个表之间有一条线,说明power bi已经自动识别了这2个表之间的关系,关联字段为 “产品编码”,一端为1(主表),一端是 * 号(子表),就是 1 对 多 的意思。
这就已经实现了 sql的 join功能。
4、显示 销售表 join 产品表之后的数据
sql的写法:
SELECT
t2.产品编码,
t2.产品名称,
t1.销售日期,
t1.数量,
t1.金额
from 销售表 t1
INNER JOIN 产品表 t2
ON t1.产品编码 = t2.产品编码
power bi的方式,先点击 “建模”,然后点击“新表” 按钮:
在下方的输入框中输入代码,并回车,这样我们就新建了一个 “表”:
SELECTCOLUMNS('销售表',
"产品编码",RELATED('产品表'[产品编码]),
"产品名称",RELATED('产品表'[产品名称]),
"销售日期",'销售表'[销售日期],
"数量",'销售表'[数量],
"金额",'销售表'[金额]
)
然后,点击 左侧的图标,在右侧 点击 “表” ,就可以看到 2个表关联后的 5行数据:
5、总结
在power bi中 实现 join:
(1)首先,需要创建模型,其实就是指定 表与表之前 关联字段的对应关系,是 1对1,还是1对多,还是多对多。
(2)在上面的dax中,引用到了 selectcolumns函数 和 related函数,前者是用来指定要select的列,就跟sql里的select子句没什么区别,第1个参数是指定 from 哪个表,下面的每一行,第1个参数是列别名,第2个参数是要显示的列。
后者是 显示关联表的列时,比如,我们是 from 销售表,但要显示 产品表 的数据,这个时候就要指定 related函数,表示通过 join后(join会自动使用上面的模型),取出 产品表的 产品编码字段 以及 产品名称字段。