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 .....' –