如何让我的 DAX 度量来计算分组值?

How do I get my DAX measure to calculate grouped values?

我需要有关 Power BI 报告中 DAX 度量的帮助。我只是在学习措施,如果这看起来像一个新手问题,我很抱歉。

这是我的场景:

该报告的目的是显示一个城市中不同位置的用水情况。数据来自物联网传感器,每隔几分钟左右就会有新条目。

数据样本通常如下所示:

|SensorID  |Timestamp            |Reading
|----------|---------------------|--------
|1         |2017-06-22 12:01 AM  |123.45
|1         |2017-06-22 12:15 AM  |124.56
|1         |2017-06-22 12:36 AM  |128.38
|2         |2017-06-22 02:12 AM  |564.75
|2         |2017-06-22 02:43 AM  |581.97

我有一个简单的 DAX 度量,用于计算报告中 select 的当前日期范围内每个 location/sensor 的用水量(通过时间轴控制):

Usage:= (MAX([Reading]) - MIN([Reading]))

当单个 location/sensor 被 select 编辑时,此措施非常有效。但是,当我 select 多个位置时,计算不正确。它从所有传感器中获取最大值,并从所有传感器中减去最小值 - 而不是计算每个位置的使用情况,然后对使用情况求和。

例如,给定上面的数据样本,正确的计算应该是:

Total Usage = (128.38 - 123.45) + (581.97 - 564.75) = 22.15

相反,它是这样计算的:

Total Usage = (581.97 - 123.45) = 458.52

如何获取按传感器 ID 分组的度量来计算使用情况?

我希望这是有道理的。

谢谢!

试试这个:

Total Usage:= SUMX( VALUES(MyTable[SensorID]), [Usage])

VALUES(MyTable[SensorID]) 函数给出了唯一 SensorID 的列表。然后 SUMX 函数逐一检查该列表并计算每个 SensorID 的 [Usage] 度量。然后总结结果。

另一种解决方案:

Total Usage:= SUMX( SUMMARIZE(MyTable, MyTable[SensorID]), [Usage])

它的工作方式相同,只有唯一传感器 ID 列表由 SUMMARIZE 函数而不是 VALUES 返回。

结果: