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

如何用SQL遍历指定日期范围并合并所有月度查询结果为统一输出

实现方案

仅合并所有月份结果按顺序输出

如果你只需要把2019年1月到2020年12月的所有数据按时间先后拼接,不需要重复输出历史数据,直接调整WHERE条件加排序即可,效果等价于原24条SQL执行后按顺序拼接结果:

SELECT * 
FROM tableA A 
WHERE A.Date >= '2019-01-01' 
  AND A.Date < '2021-01-01'
ORDER BY A.Date ASC

实现输出样例中的滚动累计效果

如果你需要的是样例展示的效果:先输出1月的所有数据,再输出1-2月的所有数据,再输出1-3月的所有数据,直到最后输出全部24个月的数据,可以通过生成月份序列关联实现,以下是通用写法:

WITH month_series AS (
    SELECT '2019-01-01' AS month_bound
    UNION ALL SELECT '2019-02-01'
    UNION ALL SELECT '2019-03-01'
    UNION ALL SELECT '2019-04-01'
    -- 按规律补全剩余月份,直到最后一行是'2021-01-01'
    UNION ALL SELECT '2021-01-01'
)
SELECT A.*
FROM month_series ms
JOIN tableA A ON A.Date < ms.month_bound
WHERE ms.month_bound >= '2019-02-01'
ORDER BY ms.month_bound, A.Date ASC

如果你的数据库支持递归CTE或者内置日期序列生成函数,可以简化月份序列的生成逻辑,不需要手动逐条写UNION ALL。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:39:02