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

如何从含两个日期字段的表中按日期聚合记录数?

问题描述

现有如下数据表:

人员到达日期离开日期
John01/01/202204/01/2022
Ana03/01/202204/01/2022
Ronald04/01/2022NULL

需要得到如下统计结果:

日期新增到达人数新增离开人数
01/01/202210
03/01/202210
04/01/202212
解决方案

可以通过拆分到达、离开事件为独立记录,再按日期分组统计的方式实现:

WITH date_events AS (
    -- 提取到达日期对应的到达事件
    SELECT 到达日期 AS 日期, 1 AS 到达人数, 0 AS 离开人数
    FROM 你的数据表名
    UNION ALL
    -- 提取非空离开日期对应的离开事件
    SELECT 离开日期 AS 日期, 0 AS 到达人数, 1 AS 离开人数
    FROM 你的数据表名
    WHERE 离开日期 IS NOT NULL
)
SELECT 
    日期,
    SUM(到达人数) AS 新增到达人数,
    SUM(离开人数) AS 新增离开人数
FROM date_events
GROUP BY 日期
ORDER BY 日期;

逻辑说明:

  • 用WITH子句构建临时数据集,将每条人员记录拆分为“到达”和“离开”两类事件(无离开日期的记录仅保留到达事件);
  • 按日期分组后,对每日的到达、离开事件数分别求和,得到当日新增统计;
  • 最后按日期排序,保证结果顺序符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 12:15:40