performance - 优化 DAX 在时间范围内有 X 数量或更多
问题描述
我希望加快这个计算,每次我在页面上添加不同的过滤器视图时,加载需要一两分钟。
基本度量仅计算滚动 3 个月内的总登录次数,这按预期工作。
TotalLoginsIn90 =
CALCULATE (
SUM ( [Logins] ),
DATESINPERIOD ( 'Calendar'[Date], LASTDATE ( Logins[Date] ), -3, MONTH )
)
我现在希望在每个月确定每月登录超过 3 次的用户数量。
CustLoginIn90 =
CALCULATE (
SUMX ( DISTINCT ( Logins[Customer Number)] ), 1 ),
FILTER (
VALUES ( Logins[Cust Customer Number (Numeric)] ),
[TotalLoginsIn90] > 3
)
)
或者
CustLoginIn90 =
CALCULATE (
DISTINCT ( Logins[Customer Number] ),
FILTER (
VALUES ( Logins[Cust Customer Number (Numeric)] ),
[TotalLoginsIn90] > 3
)
)
这些中的每一个都需要花时间来计算,但最终会得到正确的数量。
有什么办法可以加快这些措施?
谢谢您的帮助!
解决方案
我建议将其TotalLoginsIn90
作为计算列而不是度量,因此只需要计算一次(每次报告刷新)。
TotalLoginsIn90 =
CALCULATE (
SUM ( [Logins] ),
DATESINPERIOD (Logins[Date], Logins[Date], -3, MONTH)
)
这也允许您为您的CustLoginIn90
度量编写一个非常简单的条件:
CustLoginIn90 = SUMX(Logins, IF(Logins[TotalLogins90] > 3, 1, 0))
推荐阅读
- c# - 播放器触摸部件时播放声音
- python - python中的哈希映射实现
- variables - 即使我使用 REAL(8) 在 Fortran 中声明它,我是否必须在将值归因于变量时使用“.d0”?
- apache-camel - 从文件中顺序读取10行组,并行处理行,同时读取下一组进行处理;骆驼怎么办?
- typescript - Mixin 返回一个抽象类的子类,如何指定 mixin 的返回类型?
- scheme - 方案定义一个 lambda
- haskell - 从 Haskell 中的一组选项中管理/表示选择的模式
- r - 减少条形之间的距离,同时通过 bargap 使它们保持苗条
- python - 如何调用具有不同变量名的预定义函数?
- php - URL 中带有“И”和“Э”utf-16 符号的 PHP 7 fopen/file_get_contents 甚至无需调用服务器即可返回 HTTP 500(适用于 PHP8)