【发布时间】:2021-07-08 04:34:19
【问题描述】:
我在下面有 SQL 查询来显示人名,日期范围之间的计数。结果如下:
DAY NAME count_person
04-MAY-2020 person_1 220
06-MAY-2020 person_1 30
如果该日期的姓名缺失,我希望我的结果如下所示
DAY NAME count_person
01-MAY-2020 person_1 0
02-MAY-2020 person_1 0
03-MAY-2020 person_1 220
04-MAY-2020 person_1 30
'
'
'
31-MAY-2020 person_1 0
下面是我的sql查询:
SELECT TRUNC(AN.DATE_CREATED) DAY, AN.NAME, COUNT(AN.NAME) count_person
FROM
person AN
WHERE
TRUNC(AN.DATE_CREATED) >= '01-MAY-20'
AND TRUNC(AN.DATE_CREATED) <= '31-MAY-20'
GROUP BY TRUNC(AN.DATE_CREATED), AN.NAME
感谢您的解决方案,我对我的输出进行了修改 输出如下所示:
DAY NAME count_person
01-MAY-2020 person_1 0
02-MAY-2020 person_1 0
03-MAY-2020 person_1 220
04-MAY-2020 person_1 30
05-MAY-2020 person_1 30
'
'
15-MAY-2020 person_1 12
16-MAY-2020 person_1 12
'
'
31-MAY-2020 person_1 30
意思是如果在特定日期我的计数为零,那么它应该从前一个日期开始计数,如果它不为零,那么它会离开吗?我尝试使用铅,但逻辑无法取之前的值。
【问题讨论】:
-
您的日期和值似乎不太匹配;编辑后更是如此。我想我已经明白你的意思了,但并不完全清楚。
-
您的解决方案对我有用,谢谢!