原:https://www.freesion.com/article/19901345123/
select b.DAY_TIME ,nvl(a.ct,0) from (
select to_char(t.birthday,'yyyy-MM-dd') birthday,count(1) ct
from tb_user t
group by to_char(t.birthday,'yyyy-MM-dd')
order by to_char(t.birthday,'yyyy-MM-dd') asc
) a
right join (
SELECT TO_CHAR(TO_DATE('2020-02-01', 'YYYY-MM-DD') + ROWNUM - 1, 'YYYY-MM-DD') DAY_TIME
FROM DUAL
CONNECT BY ROWNUM <= TO_DATE('2020-03-01', 'YYYY-MM-DD') - TO_DATE('2020-02-01', 'YYYY-MM-DD')
) b on a.birthday = b.DAY_TIME
order by b.DAY_TIME