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

如何按日期统计任意时间点未结工单(ID)的去重计数?

按日期统计每日未结工单数量的解决方案

你的思路完全可行——通过关联独立的Dates表,结合非等值关联条件,就能准确统计全年每日的未结工单去重数量。具体实现逻辑如下:

核心思路

以Dates表为基础(确保每天都有统计记录),将其与工单表做非等值关联:判断统计日期是否处于工单的创建日期之后,且在工单的实际完成日期之前(对于未结工单,实际完成日期为NULL,需单独处理这类情况),最后按日期分组统计去重后的工单ID数量。

SQL示例(通用版)

SELECT
    d.date AS 统计日期,
    COUNT(DISTINCT t.incident_id) AS 未结工单数量
FROM
    Dates d
LEFT JOIN
    工单表 t 
    ON d.date >= t.created_date
    AND (d.date <= t.actual_completion_date OR t.actual_completion_date IS NULL)
    -- 若工单状态字段明确可靠,建议添加以下条件过滤已结工单
    -- AND t.incident_status = '未结'
GROUP BY
    d.date
ORDER BY
    d.date;

关键细节说明

  • 处理未结工单:未结工单的actual_completion_date通常为NULL,因此关联条件中用OR t.actual_completion_date IS NULL来覆盖这类场景——只要统计日期晚于等于工单创建日期,且工单未完成,就判定为当天未结。
  • 去重统计:使用COUNT(DISTINCT t.incident_id)确保同一个工单不会在多天统计中被重复计算(避免工单跨多天未结时被多次计数)。
  • Dates表的作用:作为主表使用LEFT JOIN,保证即使某天没有未结工单,也会输出该日期并显示数量为0,不会遗漏任何日期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 03:18:23