2017-06-16 287 views
0

我有一個數據庫,包含InfluxDB中納秒測量的價格和時間戳。當我做一個選擇通過時間像這樣的分組:通過Influxdb中的時間查詢獲取組中的最後一個時間戳

select first(price),last(price) from priceseries where time>=1496815212834974866 and time<=1496865599580302882 group by time(1s) 

我接收在其中的時間戳對準於第二開始組時間列。例如,時間戳將是08:00:00,下一個時間戳將是8點00分01秒

如何

  1. 上記錄時間戳本身應用聚合函數像過去(時間)或第一(時間),以便獲得組的真實第一個和最後一個時間戳(我的組中可以有很多價格)?
  2. 以及如何在響應列time可能是關閉第二,而不是開幕第二,也就是說,如果組從08:00:00到08:00:01,我想看到08:00:01在我的time列而不是我現在看到的08:00:00?使用聚合功能,這意味着使用的group by

回答

1
  1. 沒有。

select first(price), last(price) where time >= <..> and time <= <..>會給你在該時間窗內的第一個和最後一個價格。

當查詢具有group by時,聚合僅適用於間隔內的值。這些值本身就是08:00:00 - 08:00:01間隔內的實際值,只是顯示的時間戳是針對間隔本身,而不是實際值。

意味着對於8點00分00秒和八時00分01秒,而不的基團通過和與一組用於同期查詢由time(1s)之間查詢將得到同樣的結果。唯一的區別是沒有分組的查詢將具有值的實際時間戳,並且按查詢分組將具有間隔的時間戳。

  1. 使用group by時的時間戳表示間隔的開始時間。由此可以計算出結束時間是開始時間+間隔。查詢語言中不能配置要顯示的時間戳。