TOTALMTD 运行 缓慢的 DAX 指标

DAX measure with TOTALMTD running slow

我的表格立方体中有两个度量。

第一个叫

'Number of Days' := CALCULATE(COUNTROWS(SUMMARIZE('A'[Date])))

第二个将包含第一个作为其表达式

'Number of Days (MTD)' := CALCULATE(TOTALMTD([Number of Days],'A'[Date]))

当我浏览立方体并拉出测量时的第二个测量。 它 运行 非常慢。

知道如何优化这些测量并使其 运行 更快吗?

Sample Data

Volume:= SUMX(A, DIVIDE([Volume],2))

Volume (MTD):= TOTALMTD([Volume],'A'[Date])

更新了额外的测量结果

最佳做法应该是创建 Calendar/Date table 并使用 TOTALMTD 时间智能功能。但是,如果您的模型不包含日期 table.

,则可以使用此方法

第一测,天数:

Num of Days := DISTINCTCOUNT(A[Date])

累计量:

Num of days (MTD) :=
CALCULATE (
    [Num of Days],
    FILTER (
        ALL ( A ),
        [Date] <= MAX ( A[Date] )
            && MONTH ( [Date] ) = MONTH ( MAX ( [Date] ) )
            && YEAR ( [Date] ) = YEAR ( MAX ( [Date] ) )
    )
)

更新: 添加了截图。

更新 2: 看来您需要计算累计总数,在这种情况下,只需对第二个度量使用以下表达式:

Num of days (MTD) :=
CALCULATE ( [Num of Days], FILTER ( ALL ( A ), [Date] <= MAX ( A[Date] ) ) )

更新 3: 使用 SUMX 和 DISTINCT 计算不同的日期。

用以下内容替换第一个度量:

Num of Days = SUMX(DISTINCT(A[Date]), 1)

This solution could be more performant than use COUNTROWS + SUMMARIZE, however it could be very slow depending on the number of rows and the machine where it is running.

如果有帮助请告诉我。