1
我有如下所示按小时组的记录的查询:分组记录了60分钟持续时间,从所述第一记录的时间戳开始小时
select date_trunc('hour', insert_time),
file_type,
avg(file_size)
from my_table
where insert_time > now()::timestamp - interval '7 days'
group by 1, 2 order by 1, 2
这组记录为一个小时的窗口每个小时窗口开始于0th
分钟。
这个需求的一点背景:我有一个自动测试,导致数据库被填充。在测试开始之前,数据库可能已经有一些记录。我的自动化测试的目标是每小时执行一定数量的任务。我正在寻找一种方法来验证我的测试的准确性,方法是在数据库中为每个小时生成一个报告,其中小时从匹配条件的第一条记录的时间戳(分钟)开始(我可以定义一个条件以匹配由我的自动化,所以它拿起自动化发送的第一个记录)
因此,目标是按小时对记录进行分组,但小时应使用匹配WHERE条件的第一条记录的分钟计算为起点。
因此,如果插入由于我自动化的第一个记录有时间戳2017-06-06 07:47:04.012734
,然后分组应该发生这样的:
1st group => 2017-06-06 07:47:04.012734 to 2017-06-06 08:47:04.012734
2nd group => 2017-06-06 08:47:04.012734 to 2017-06-06 09:47:04.012734
3rd group => 2017-06-06 09:47:04.012734 to 2017-06-06 10:47:04.012734
.
.
.
在此先感谢!
你可以添加一个子查询选择你的条件的第一个测试时间,并从date_trunc函数得到它像'select date_trunc('hour',first_date).......... from my_table,(select min (insert_time)作为first_date从.....)a where .... group by 1,2 .....' –