查找在Azure Stream Analytics中5分钟翻滚窗口中至少出现3分钟的查询数

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

我需要找到在5分钟内至少在3分钟内出现在Azure流分析中的“翻滚”窗口中的客户端。

下面的代码可以找到5分钟内出现的人数。

SELECT  
        apMac,
        COUNT(Distinct([clientMac])) AS [numberofClientsPerFiveMinutes],
        AVG(rssi) AS [rssiAverage],
        System.TimeStamp AS [EventTimestampUTC],
        UDF.melbournetime(System.TimeStamp) AS [EventTimestampLocalTime]
INTO    [meraki-aggregated-powerbi]
FROM    [ExplodedData]
GROUP BY    apMac,
            TumblingWindow(Minute, 5)

但是,我想计算至少3分钟内在此列表中的人员。使用他们的第一次出现和最后一次出现(基于他们的查询时间)。

问题是我不知道Stream Analytics中的代码样式

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

我发现DATEDIFF的解决方案如下。您需要按人分组,然后从其最小可见时间中减去最大数。

    SELECT
        apmac,
        COUNT(DISTINCT ([clientmac])) AS [SeenPassengerNumberInTimeRange],
        ABS(DATEDIFF(MINUTE, MAX(seenTimeLocal), MIN(seenTimeLocal))) AS RangeTimeMinute,
        EventTimestampLocalTime AS EventTimestampLocalDateTime
    FROM [explodeddata]
    GROUP BY 
        apmac,
        EventTimestampLocalTime,
        Tumblingwindow(minute, 5) -- 5 min window size
    HAVING 
     ABS(DATEDIFF(MINUTE, MAX(seenTimeLocal), MIN(seenTimeLocal))) >= 2 -- at least 2 min

)

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