DATE_TRUNC功能是否可以解决过去30天内每天计算事件天数的问题?
答案 0 :(得分:0)
是的-假设您使用的是Postgres-您可以使用该功能提取日期部分,然后对每个特定的日期进行分组和计数。
在下面的示例中,我有一个带有tb_registration
时间戳列的表date
,并且使用DATE_TRUNC
函数按日,月,年分组。在此示例中,我还将date
列应用了一定天数的过滤器。
select date_part('day', DATE_TRUNC('day', date)) "day",
date_part('month', DATE_TRUNC('month', date)) "month",
date_part('year', DATE_TRUNC('year', date)), count(*) "year"
from tb_registration where date > NOW() - INTERVAL '600 days'
group by DATE_TRUNC('day', date),
DATE_TRUNC('month', date),
DATE_TRUNC('year', date) order by 3 desc, 2 desc, 1 desc
此查询产生以下结果:
14;4;2017;1
11;4;2017;90
10;4;2017;99
9;4;2017;60
8;4;2017;66
7;4;2017;83
6;4;2017;87
5;4;2017;76
4;4;2017;91
3;4;2017;110
2;4;2017;52
1;4;2017;46
31;3;2017;66
这些列在哪里: