我的初始查询如下所示:
select process_date, count(*) batchCount
from T1.log_comments
order by process_date asc;
我需要能够对缺少的周末做一些快速分析,但想知道是否有快速填写process_date
中没有的缺失日期。
我已经看到了解决方案here,但我很好奇db2中是否隐藏了任何可以通过对原始查询进行少量修改的魔法。
答案 0 :(得分:1)
注意:未经测试,根据我对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;