Query-Performance

InfluxDB:從不同的標籤中選擇 last() 值

  • February 19, 2021

我有一個包含幾個感測器的原始數據的桶,比如溫度、氣壓等。感測器不會同時發送它們的數據,這意味著給定的時間戳可能有來自不同感測器的多個數據點,或者只是從一個。

每個讀數都標有它來自的感測器的 ID。我需要從給定數量的 ID 中獲取 Last() 讀數。當我嘗試這段程式碼時:

select last(Temperature) from raw_measure where ID =~ /4372502|4399699|4406512|4407840/

它不是返回每個 ID 的最後一個溫度觀測值,而是返回整個組的最新溫度時間戳。

如何在單個查詢中獲取每個 ID 的最後讀數?

我找到了解決方案。您需要做的就是在 TAG 欄位中添加一個 ORDER BY。所以最終查詢變為:

SELECT last(Temperature) 
FROM raw_measure 
where ID =~ /4372502|4399699|4406512|4407840/ 
ORDER BY ID

引用自:https://dba.stackexchange.com/questions/285502