SQL 到带有子查询的 DAX

SQL to DAX with subquery

如何将以下 SQL 查询翻译成 DAX:

WITH SensorTimes As (
   SELECT sensorID, MAX(timestamp) "LastReading"
   FROM sensorTable
   GROUP BY sensorID
)
SELECT s.sensorID,s.timestamp,s.sensorField1,s.sensorField2 
FROM sensorTable s
INNER JOIN SensorTimes t on s.sensorID = t.sensorID and s.timestamp = t.LastReading

上下文 我需要检索每个传感器收集的最新值,因此:

  1. 我得到每个传感器的最新时间戳

  2. 我使用之前计算的时间戳加入我的 sensorTable

以下是我的处理方法。

  1. 创建一个日历 DateTable(您可以使用 CALENDARCALENDARAUTO)来桥接您的两个表。

  2. 在时间戳列上关联表,如下所示:

  3. 您可以在 DateTable 上创建一个切片器来过滤您的日期范围。

  4. 在“行”字段中使用 SensorID 创建一个矩阵。

  5. 创建一个 LastReading 度量并将其放入值字段。


LastReading = MAX(SensorTable[TimeStamp])

  1. 创建任何需要的 SensorField 措施。例如,

Field1 = 
    VAR LastReading = [LastReading]
    RETURN CALCULATE(MAX(SensorTable[SensorField1]),
               SensorTimes[TimeStamp] = LastReading)

注意:您可能需要创建与 TimeStamp 相关的日期列以正确桥接表格。 (改为在 DateStamp 上创建关系。)

DateStamp = DATEVALUE(SensorTable[TimeStamp])