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函数

操作过程如下图:

Power BI中filter函数实现SQL Server中的where_第1张图片

输入如下代码,并回车:

SELECTCOLUMNS(filter('销售表','销售表'[数量] > 20),
              "产品编码",RELATED('产品表'[产品编码]),
              "产品名称",RELATED('产品表'[产品名称]),
              "销售日期",'销售表'[销售日期],
              "数量",'销售表'[数量],
              "金额",'销售表'[金额]
)

点击 左侧的图标,再点击 右侧的 “表2”,就可以看到 红色框标记的输出结果 

Power BI中filter函数实现SQL Server中的where_第2张图片

上面的代码和本文一开始的代码相比,只是把 '销售表' 替换为  filter('销售表','销售表'[数量] > 20)。

这里的filter 函数的第1个参数是指定 数据源,就是 销售表,第2个参数就是过滤条件,比如,这里只需要 销售表中 数量 大于 20的数据,当有多个过滤条件时,可以用 && 表示这些条件同时都要满足(类似sql中的and),而用 || 表示 只要任意一个条件满足就可以(类似sql中的 or )。

 

你可能感兴趣的:(Tableau与Power,BI)