【问题标题】:DAX: Create table with LATEST entriesDAX:使用最新条目创建表
【发布时间】:2016-10-01 10:18:57
【问题描述】:

我家中有许多传感器,我想使用 PowerBI 显示不同房间的温度图表,并测量当前/最新值。

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

数据来自表单上名为“DeviceReadings”的 Azure 表:

  • 位置(文本、分区键)
  • RowKey(基于存储日期的数值,未使用)
  • 日期(日期时间、时间戳)
  • 温度(十进制)
  • 湿度(十进制)

我想要的是:(伪代码)

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" 添加为 "MAX(DeviceReadings[Date]) 然后"Temperature";LASTNONBLANK(DeviceReadings[Temperature];DeviceReadings[Temperature]); 但这没有得到“连接的温度读数,而是其他的。

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

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

我的 DAX 技能相当低,因此在编写计算查询时需要帮助。

【问题讨论】:

    标签: iot powerbi dax azure-table-storage temperature


    【解决方案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]
    )
    

    我很确定有一种更简单的方法可以实现您的目标,但我现在无法弄清楚。

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

    【讨论】:

    • 这行得通!我现在已经投了赞成票,如果没有更简单的问题出现,我会将其标记为答案 - 唷,这对于一个看似简单的请求来说是很多 DAX! :)
    • 接受这个作为答案,它起作用了,没有人想出更简单的解决方案。谢谢,亚历克斯 :)
    猜你喜欢
    • 2013-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 2023-03-22
    • 1970-01-01
    • 2012-06-03
    相关资源
    最近更新 更多