在DB2 SQL中填充缺少的日期
我的初始查询如下所示:在DB2 SQL中填充缺少的日期,sql,db2,gaps-and-islands,Sql,Db2,Gaps And Islands,我的初始查询如下所示: select process_date, count(*) batchCount from T1.log_comments order by process_date asc; 我需要能够对缺失的周末进行一些快速分析,但我想知道是否有一种快速的方法来填写流程中没有的缺失日期 我已经看到了这个解决方案,但我很好奇db2中是否有什么神奇的东西,只需对我的原始查询做一点小小的修改就可以做到这一点 注意:未经测试,根据我对SQL Server/Oracle的接触情况构建了框架
select process_date, count(*) batchCount
from T1.log_comments
order by process_date asc;
我需要能够对缺失的周末进行一些快速分析,但我想知道是否有一种快速的方法来填写流程中没有的缺失日期
我已经看到了这个解决方案,但我很好奇db2中是否有什么神奇的东西,只需对我的原始查询做一点小小的修改就可以做到这一点 注意:未经测试,根据我对SQL Server/Oracle的接触情况构建了框架。我想这给了你一个想法:
*现在在DB2上进行了修改和测试*
WITH MaxDateQry(MaxDate) AS
(
SELECT MAX(process_date) FROM T1.log_comments
),
MinDateQry(MinDate) AS
(
SELECT MIN(process_date) FROM T1.log_comments
),
DatesData(ProcessDate) AS
(
SELECT MinDate from MinDateQry
UNION ALL
SELECT (ProcessDate + 1 DAY) FROM DatesData WHERE ProcessDate < (SELECT MaxDate FROM MaxDateQry)
)
SELECT a.ProcessDate, b.batchCount
FROM DatesData a LEFT JOIN
(
SELECT process_date, COUNT(*) batchCount
FROM T1.log_comments
) b
ON a.ProcessDate = b.process_date
ORDER BY a.ProcessDate ASC;
DB2是否具有生成值序列的功能?postgres有generate_系列,可用于构造日历表,但只用于整数,不用于日期。