我正在尝试在流分析中进行查询,以便将输出发送到 PowerBI。
我需要三样东西:
我是流分析查询的新手,我发现它非常复杂。
这是我的 IoT 中心输入数据集:
这是我的疑问:
SELECT System.Timestamp AS WindowEnd,
COUNT(*)
INTO [output-pbi]
FROM [input-rfid]
GROUP BY HoppingWindow(second,3600,1)
在这个例子中,我需要显示房间里有 1 个人(占总容量的 1%)以及与此类似的演化线(始终实时):
我不知道我是否使用了正确的窗口函数。
非常感谢。
您可以使用下面的查询来获取您期望的结果。
WITH CountPeople AS (
SELECT
System.Timestamp AS WindowEnd,
COUNT(*) AS PeopleCount, location
FROM [input1]
WHERE location = 'Entrada' OR location = 'Salida'
GROUP BY HoppingWindow(minute, 1, 1), location
)
SELECT
CP.WindowEnd,
SUM(CASE WHEN CP.location = 'Entrada' THEN CP.PeopleCount ELSE 0 END) -
SUM(CASE WHEN CP.location = 'Salida' THEN CP.PeopleCount ELSE 0 END) AS LoadFactor,
(SUM(CASE WHEN CP.location = 'Entrada' THEN CP.PeopleCount ELSE 0 END) -
SUM(CASE WHEN CP.location = 'Salida' THEN CP.PeopleCount ELSE 0 END))*100/100 AS CapacityPercentage
INTO [output1]
FROM CountPeople CP
GROUP BY CP.WindowEnd, TumblingWindow(second, 1)
在这里,我在过去 1 分钟内每秒获得
CountPeople
,按位置分组。
然后,我计算位置为
Entrada
和 Salida
的记录之间的差异。
输出:
同样,您需要根据您的数据更改查询,例如
UID
。