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.
如果有帮助请告诉我。
我的表格立方体中有两个度量。
第一个叫
'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.
如果有帮助请告诉我。