DAX优化-计算,国家,过滤器,相关表格



我创建了下面的度量值来计算一段时间内的设备事件。

用户可能会意外输入日期在设备调试和退役日期之前或之后的事件。在这些情况下,我们需要排除这些事件。事件日期与DateTable[Date]有关系。

应注意的是,每台设备都分配给一个设施。在添加RELATEDTABLE之前,我不能将Facility作为一个类别来获得视觉效果所需的结果。

这项措施完全符合我的要求。然而,我觉得它非常缓慢和低效。

Event Count =
CALCULATE (
COUNTROWS ( 'Events' ),
FILTER (
RELATEDTABLE( 'Equipment' ),
('Equipment'[CommissionDate] <= MAX ( DateTable[Date])
|| ISBLANK ( 'Equipment'[CommissionDate]))
&& ('Equipment'[DecommissionDate] >= MAX ( 'DateTable'[Date] )
|| ISBLANK ( 'Equipment'[DecommissionDate] ))
)
)

任何关于改进的想法都将是非常有益的。

根据经验,在后端加速DAX移动计算。因此,问问自己:我真的需要在DAX中动态地进行这个计算吗?或者它可以是后端计算的静态标志吗

因此,我会在后端创建一个标志"EVENTS_TO_EXCLUDE_FL",使输出与相同

('Equipment'[CommissionDate] <= MAX ( DateTable[Date])
|| ISBLANK ( 'Equipment'[CommissionDate]))
&& ('Equipment'[DecommissionDate] >= MAX ( 'DateTable'[Date] )
|| ISBLANK ( 'Equipment'[DecommissionDate] ))
)

然后,您的度量变成:

Event Count Optimized =
CALCULATE (
COUNTROWS ( 'Events' ),
'Events'[EVENTS_TO_EXCLUDE_FL] = 0
)

最新更新