如何解决每个维度值的DAX过滤逻辑
在DAX中-产生所需输出的最有效方法是:
我想说的是,这类似于SQL中的相关子查询。
解决方法
OPTION-1
步骤1:,如下所示创建自定义列-
is_min_date =
// -- keep current row's customer id to a variable
VAR current_cust_id = store[Customer ID]
// -- keep current row's YEAR value to a variable
VAR current_date = store[Order Date]
// -- find the MIN YEAR from order date for the current row customer id
VAR min_date_current_custommer_id =
CALCULATE(
MIN(store[Order Date]),FILTER(
store,store[Customer ID] = current_cust_id
)
)
// -- check the current row's year is the MIN year of order date for the customer as well or not.
RETURN IF(current_date = min_date_current_custommer_id,1,0)
第2步:现在,在可视画面中添加如下所示的基本过滤器,您将在表格的可视画面中获得所需的行-
选项2: 也可以使用“测量”代替创建“自定义列”来实现相同目的。只需在下面执行此操作即可
步骤1:如下创建度量-
is_min_date_measure =
VAR min_order_date_for_current_customer =
CALCULATE(
MIN(store[Order Date]),FILTER(
ALL(store),store[Customer ID] = MIN(store[Customer ID])
)
)
RETURN
IF ( MIN(store[Order Date]) = min_order_date_for_current_customer,0)
步骤2:现在,如下所示添加视觉级别过滤器,您将获得所需的输出-
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。