Azure 流分析·统计进出房间的人数

问题描述 投票:0回答:1

我正在尝试在流分析中进行查询,以便将输出发送到 PowerBI。

我需要三样东西:

  • 统计人数(位置=Entrada - 位置=Salida)。那就是房间的载客率,进来的人减去离开房间的人。
  • 显示容量百分比(房间最多 100 人)
  • 进化线

我是流分析查询的新手,我发现它非常复杂。

这是我的 IoT 中心输入数据集:

这是我的疑问:

    SELECT System.Timestamp AS WindowEnd,
           COUNT(*)
    INTO [output-pbi]
    FROM [input-rfid]
        GROUP BY HoppingWindow(second,3600,1)

在这个例子中,我需要显示房间里有 1 个人(占总容量的 1%)以及与此类似的演化线(始终实时):

我不知道我是否使用了正确的窗口函数。

非常感谢。

azure azure-stream-analytics
1个回答
0
投票

您可以使用下面的查询来获取您期望的结果。

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

© www.soinside.com 2019 - 2024. All rights reserved.