【发布时间】:2020-08-21 22:11:55
【问题描述】:
我正在尝试获取从 1 月 1 日至今的记录总数,而不是跳过日期并为没有记录的日期返回 0。
我尝试了以下方法:orders 是一个示例表,orderdate 是一个时间戳列
with days as (
select generate_series(
date_trunc('day','2020-01-01'::timestamp),
date_trunc('day', now()),
'1 day'::interval
) as day
)
select
days.day,
count(orders.id)
from days
left outer join orders on date_trunc('day', orders.orderdate) = days.day
where orders.orders_type='C'
group by 1
问题是日期被跳过。 但如果我执行:
select generate_series(
date_trunc('day','2020-01-01'::timestamp),
date_trunc('day', now()),
'1 day'::interval
)
我得到了正确的系列,没有跳过任何日期。
【问题讨论】:
标签: sql postgresql datetime left-join recursive-query