在DAX / Power BI中,我想知道是否可以在数据集中的数据子集上创建聚合计算 .
我有一段时间的客户分数列表,例如
date, customer, score
-----------------------
1.1.17, A, 12
2.1.17, A, 16
4.1.17, B, 10
5.1.17, B, 14
我想确定每个客户的最大日期,例如 .
date, customer, score, max date per client
-------------------------------------------
1.1.17, A, 12, 2.1.17
2.1.17, A, 11, 2.1.17
4.1.17, B, 10, 5.1.17
5.1.17, B, 14, 5.1.17
SQL等价物会像 -
MAX(date) OVER (PARTITION BY customer).
在DAX / Power BI中,我意识到计算列可以与EARLIER结合使用,但这不合适,因为计算列不响应从切片器过滤 . I.e我想找到每个客户端的MAX日期,如上所示,是从切片器控制的过滤日期范围,而不是计算列所做的完整数据集 . 这样的措施可能吗?
3 回答
你会想要一个像这样的措施:
ALLSELECTED
删除了本地过滤器上下文,同时保留了任何切片器过滤 .过滤器
Table1[customer] = MAX(Table1[customer])
基本上是计算列中Table1[customer] = EARLIER(Table1[customer])
的度量值 .你可以使用
subquery
:假设您的表名是“Table” . 首先,为最大日期创建一个度量(而不是列):
其次,创建另一个按客户重新计算最大日期的度量: