首页 文章

DAX:使用LATEST条目创建表

提问于
浏览
0

我家里有很多传感器,我想用PowerBI显示不同房间的温度图表,并测量当前/最近的值 .

我在dax中写这篇文章最难:

数据从表单上名为“DeviceReadings”的Azure表中传送到PowerBI:

  • 位置(文本,分区键)

  • RowKey(基于存储日期的数值,未使用)

  • Date(DateTime,TimeStamp)

  • 温度(十进制)

  • 湿度(十进制)

我想要的是:(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";LASTNONBLANK(DeviceReadings[Temperature];DeviceReadings[Temperature]); 但是没有获得“连接温度读数,而是其他东西 .

理想情况下,我想按位置分组,然后按最大日期pr位置分组,然后显示原始温度湿度值

我只想按照PowerBI仪表板上显示的位置“最近的温度读数” . (我正在使用PowerBI桌面编写所有查询并生成报告,尚未上传到PowerBI门户网站)

我的DAX技能相当低,所以在编写计算查询时需要帮助 .

1 回答

  • 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]
    )
    

    我很确定有一种更简单的方法来实现你的目标,但我现在无法理解 .

    如果这有帮助,请告诉我 .

相关问题