揭示DAX中KEPFILTERS的秘密
Unveiling the secret of KEPFILTERS in DAX.
DAX中的KEEPFILTERS()函数是一个被低估的函数。因此,我决定深入研究这个函数,并为您提供一些关于这个函数和一个令人惊讶的效果的有趣细节。
介绍
当我们在DAX中使用CALCULATE()函数时,通常会添加一个简单的过滤器,如下所示:
Product[Color] = “Green”
这个过滤器将用值“Green”替换列[Color]上的任何现有过滤器。
但有时,我们需要进一步保留表或列上的现有过滤器以执行一些有趣的计算。
- 埃隆·马斯克的xAI对抗OpenAI的ChatGPT
- 我向ChatGPT代码解释器展示了一个混乱的数据集和期望的清理版本
- 微软AI研究引入了一种称为分布式图形变换器(DiG)的新型深度学习框架,用于预测分子系统的平衡分布
有时,我们从度量值得到了错误的结果,而且我们无法理解为什么会发生这种情况。
这些都是KEEPFILTERS()函数可以帮助我们的情况。
源查询
首先,让我们定义我们想要处理的查询。
我想获取按颜色分类的在线销售清单:
DEFINE MEASURE 'All Measures'[Online Sales] = SUMX('Online Sales', [UnitPrice]*[SalesQuantity]) EVALUATE SUMMARIZECOLUMNS('Product'[Color] ,"Online Sales", [Online Sales] )
我使用SUMX将[UnitPrice]乘以[SalesQuantity]。
结果如下:
当我使用CALCULATE()添加过滤器时,查询如下所示。
// 仅绿色销售DEFINE MEASURE 'All Measures'[Online Sales] = SUMX('Online Sales', [UnitPrice]*[SalesQuantity]) MEASURE 'All Measures'[All Green Sales] = CALCULATE([Online Sales] ,'Product'[Color] = "Green" ) EVALUATE SUMMARIZECOLUMNS('Product'[Color] ,"Online Sales", [Online Sales] ,"Green Sales", [All Green Sales] )
结果如下: