Power BI中filter函数实现SQL Server中的where
Power BI是微软开发的一款功能非常强大的的BI工具,可以制作非常美观的报表,但这个工具的核心是DAX,翻译为中文就是 数据分析表达式,有点类似于excel函数,但又很不一样。
DAX中的很多功能可以与SQL对应,但差异也很大。
上篇文章中讲到用power bi实现sql中的join,代码如下:
SELECTCOLUMNS('销售表',
"产品编码",RELATED('产品表'[产品编码]),
"产品名称",RELATED('产品表'[产品名称]),
"销售日期",'销售表'[销售日期],
"数量",'销售表'[数量],
"金额",'销售表'[金额]
)
下载Power BI 以及 输入实验数据,请参考前一篇文章: Power BI中selectcolumns函数+related函数实现SQL Server中的join 。
接下来就讲一讲,用Power BI中filter函数实现SQL Server中的where。
这里要实现的过滤条件是 销售表中 数量 字段的值 大于 20。
1、sql实现where
sql中实现where很简单,无非就是join的基础上,加上 where 过滤条件。
代码如下:
SELECT
t2.产品编码,
t2.产品名称,
t1.销售日期,
t1.数量,
t1.金额
from 销售表 t1
INNER JOIN 产品表 t2
ON t1.产品编码 = t2.产品编码
where t1.数量 > 20
2、power bi中的实现方式之 filter函数
操作过程如下图:
输入如下代码,并回车:
SELECTCOLUMNS(filter('销售表','销售表'[数量] > 20),
"产品编码",RELATED('产品表'[产品编码]),
"产品名称",RELATED('产品表'[产品名称]),
"销售日期",'销售表'[销售日期],
"数量",'销售表'[数量],
"金额",'销售表'[金额]
)
点击 左侧的图标,再点击 右侧的 “表2”,就可以看到 红色框标记的输出结果
上面的代码和本文一开始的代码相比,只是把 '销售表' 替换为 filter('销售表','销售表'[数量] > 20)。
这里的filter 函数的第1个参数是指定 数据源,就是 销售表,第2个参数就是过滤条件,比如,这里只需要 销售表中 数量 大于 20的数据,当有多个过滤条件时,可以用 && 表示这些条件同时都要满足(类似sql中的and),而用 || 表示 只要任意一个条件满足就可以(类似sql中的 or )。