我有一个表mytable
,其中包含一个名为 evtime 的事件时间字段。为了总结每天的条目数,我使用:
select date_trunc('day',evtime),
count(1) as entries
from mytable
group by date_tunc('day',evtime);
这很好用。但是现在,对于某个特定日期,我想查看每小时的总数。
我有一个表mytable
,其中包含一个名为 evtime 的事件时间字段。为了总结每天的条目数,我使用:
select date_trunc('day',evtime),
count(1) as entries
from mytable
group by date_tunc('day',evtime);
这很好用。但是现在,对于某个特定日期,我想查看每小时的总数。
你是这个意思吗?
select date_trunc('hour', evtime),
count(*) as entries
from mytable
where date_trunc('day', evtime) = $yourdate
group by date_tunc('hour', evtime);
或者,在我看来,您希望在大多数情况下按天进行摘要,而在某一天按小时进行摘要。如果是这样:
select (case when date_trunc('day', evtime) = $yourdate
then date_trunc('hour', evtime)
else date_trunc('day', evtime)
end) as day_hour,
count(*) as entries
from mytable
group by day_hour;