gpt4 book ai didi

powerbi - DAX 裸 SUM 与 CALCULATE 中包裹的 sum 之间的差异

转载 作者:行者123 更新时间:2023-12-02 21:14:57 25 4
gpt4 key购买 nike

裸露的 SUM 和包裹在 CALCULATE 中的 sum 有什么区别?

Measure1 = SUM( tab[col1]) )
Measure2 = CALCULATE ( SUM( tab[col1]) ) )

更新。

我得到了 answer对于其他 SO 问题,它使用包装计算。问题的作者给出了解释,我仍然不明白。以下是作者提出的措施:

Expected Result =
SUMX (
VALUES ( Unique_Manager[Manager] ),
VAR SumBrand = CALCULATE ( SUM ( Budget_Brand[BudgetBrand] ) )
VAR SumProduct = CALCULATE ( SUM ( Budget_Product[BudgetProduct] ) )
RETURN
IF ( ISBLANK ( SumProduct ), SumBrand, SumProduct )
)

以及解释:

(...) Note that I've wrapped the sums in CALCULATE. This is done to perform the context transition from the row context inside SUMX (the particular Manager) to having that Manager as a filter context on BudgetBrand and BudgetProduct. Storing these sums as variables makes for a more readable IF line and only requres SumProduct to be computed once instead of twice.

我知道什么是过滤器上下文。但我不明白什么是上下文转换。还有其他转换吗?

最佳答案

当在行上下文中使用CALCULATE时,将发生转换,其中每行都成为过滤器,并且使用该行的所有列作为过滤器扫描整个表以查找每一行。这将对性能产生影响,如果您的表有重复项,还可能导致意外结果。

您提供的两个版本可能会返回相同的值。但是,如果不这样做,可能是因为表中存在重复行。

您可能会发现this article非常有用。

关于powerbi - DAX 裸 SUM 与 CALCULATE 中包裹的 sum 之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57738792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com