我家里有很多传感器,我想用PowerBI显示不同房间的温度图表,并测量当前/最近的值。
我在dax中写这篇文章最难:
数据来自名为" DeviceReadings"的Azure表的PowerBI。在表格上:
我想要的是:(PSEUDOCODE)
Select Location, Last(Date), Temperature, Humidity FROM DeviceReadings
GROUP BY Location
预期/通缉的结果是:
"Mediaroom", "01.10.2017 09:00", 26, 17
"Office", "01.10.2017 09:03", 28, 23
"Livingroom", "01.10.2017 09:13", 22, 32
显然,我试图根据这些读数创建一个计算的DAX表。我们的想法是创建一个计算表格,该表格始终包含最新的温度/湿度,以便我可以用标准样式的视觉效果显示这些值。
我一直在尝试设置table = SUMMARIZECOLUMNS ,按位置分组,然后添加命名列" LastSampled" as" MAX(DeviceReadings [Date])然后" Temperature&#34 ;; LASTNONBLANK(DeviceReadings [Temperature]; DeviceReadings [Temperature]); 但是那样做没有得到连接的温度读数,而是其他东西。
理想情况下,我想按位置分组,然后按最大日期pr位置分组,然后显示原始温度+湿度值
我只想要一个"最近的温度读数"按我的PowerBI仪表板上显示的位置。 (我使用PowerBI桌面编写所有查询并生成报告,尚未上传到PowerBI门户网站)
我的DAX技能相当低,所以在编写计算查询时我需要帮助。
答案 0 :(得分:1)
尝试使用此表达式:
Table = SELECTCOLUMNS (
FILTER (
CROSSJOIN (
SELECTCOLUMNS (
GROUPBY (
DeviceReadings,
DeviceReadings[Location],
"LASTDATE", MAXX ( CURRENTGROUP (), DeviceReadings[Date] )
),
"Location", DeviceReadings[Location],
"Date", [LASTDATE]
),
SELECTCOLUMNS (
DeviceReadings,
"DateJoin", DeviceReadings[Date],
"LocationJoin", DeviceReadings[Location],
"Humidity", DeviceReadings[Humidity],
"Temperature", DeviceReadings[Temperature]
)
),
[Date] = [DateJoin]
&& [Location] = [LocationJoin]
),
"Location", [Location],
"LastDate", [Date],
"Temperature", [Temperature],
"Humidity", [Humidity]
)
我很确定有一种更简单的方法来实现你的目标,但我现在无法理解。
如果有帮助,请告诉我。