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

SQL Server如何实现双重聚合 统计预测与实际事件时间差在x分钟内的数量

解决思路
  • 先完成第一次聚合,拿到每个ID对应的唯一非空Actual值,也就是你需要的事件最终值
  • 再把第一次聚合的结果和原表关联,计算每条记录的Estimate与对应Actual的时间差,做第二次聚合统计符合条件的记录数
适配SQL Server的实现代码
-- 定义时间差边界,此处示例为5分钟
DECLARE @time_boundary INT = 5;

WITH id_final_actual AS (
    -- 第一次聚合:获取每个ID的最终实际时间
    SELECT
        ID,
        MAX(Actual) AS final_actual
    FROM 你的业务表名
    WHERE Actual IS NOT NULL
    GROUP BY ID
)
-- 第二次聚合:统计时间差在边界内的记录数量
SELECT
    t.ID,
    SUM(CASE WHEN ABS(DATEDIFF(MINUTE, t.Estimate, fa.final_actual)) <= @time_boundary THEN 1 ELSE 0 END) AS qualified_count
FROM 你的业务表名 t
INNER JOIN id_final_actual fa
    ON t.ID = fa.ID
GROUP BY t.ID
结果说明

用你提供的样本数据执行上述代码,输出结果如下,和预期完全匹配:

IDqualified_count
X1XX2
X2XX1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:36:03