You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Stream Analytics:仅返回跳窗间计数增长的事件统计结果

实现方法

要只返回计数较上一个窗口增长的记录,你可以用Azure Stream Analytics支持的LAG分析函数,对比当前窗口和前一个窗口的统计结果,再过滤出符合条件的记录。具体步骤如下:

1. 生成基础窗口统计数据

先写出你原本的分组统计查询,得到每个跳跃窗口内各分组的事件数,同时保留窗口的时间标识(用窗口结束时间来排序和关联上一个窗口):

WITH WindowStats AS (
    SELECT
        YourGroupColumn,
        COUNT(*) AS CurrentCount,
        System.Timestamp() AS WindowEndTime
    FROM
        YourInputStream
    GROUP BY
        YourGroupColumn,
        HoppingWindow(hour, 8, 1)
)

2. 用LAG函数获取上一个窗口的计数

基于上面的统计结果,通过LAG函数按分组列分区、按窗口结束时间排序,取出上一个窗口的计数值:

WITH WindowStats AS (
    SELECT
        YourGroupColumn,
        COUNT(*) AS CurrentCount,
        System.Timestamp() AS WindowEndTime
    FROM
        YourInputStream
    GROUP BY
        YourGroupColumn,
        HoppingWindow(hour, 8, 1)
),
CompareWithPrevious AS (
    SELECT
        YourGroupColumn,
        CurrentCount,
        WindowEndTime,
        LAG(CurrentCount) OVER (PARTITION BY YourGroupColumn ORDER BY WindowEndTime) AS PreviousCount
    FROM
        WindowStats
)

3. 过滤出计数增长的记录

最后只保留当前计数大于上一个计数的行,同时可以处理第一个窗口(此时PreviousCount为NULL,你可以根据需求选择是否保留):

WITH WindowStats AS (
    SELECT
        YourGroupColumn,
        COUNT(*) AS CurrentCount,
        System.Timestamp() AS WindowEndTime
    FROM
        YourInputStream
    GROUP BY
        YourGroupColumn,
        HoppingWindow(hour, 8, 1)
),
CompareWithPrevious AS (
    SELECT
        YourGroupColumn,
        CurrentCount,
        WindowEndTime,
        LAG(CurrentCount) OVER (PARTITION BY YourGroupColumn ORDER BY WindowEndTime) AS PreviousCount
    FROM
        WindowStats
)
SELECT
    YourGroupColumn,
    CurrentCount,
    WindowEndTime
FROM
    CompareWithPrevious
WHERE
    -- 用COALESCE处理第一个窗口的NULL情况,若不想返回第一个窗口,改成 PreviousCount IS NOT NULL AND CurrentCount > PreviousCount
    CurrentCount > COALESCE(PreviousCount, 0)

关键说明

  • PARTITION BY YourGroupColumn确保只对比同一分组内的前后窗口数据,不会跨分组混淆。
  • ORDER BY WindowEndTime保证按窗口的时间顺序取上一个窗口的结果,贴合跳跃窗口每小时推进的逻辑。
  • 用CTE拆分步骤会让查询逻辑更清晰,你也可以把CTEs合并成嵌套查询,效果一致。

内容的提问来源于stack exchange,提问作者cornisto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 17:45:03