Timescale Cloud:性能、扩展、企业级
自托管产品
MST
last
聚合函数允许您根据另一列的排序获取某一列的值。例如,last(temperature, time)
返回聚合组内根据时间排序的最新温度值。
重要提示
last
和 first
命令不使用索引,它们对组进行顺序扫描。它们主要用于 GROUP BY
聚合内的有序选择,而不是作为 ORDER BY time DESC LIMIT 1
子句的替代来查找最新值(后者使用索引)。
名称 | 类型 | 描述 |
---|---|---|
value | 任意元素 | 要返回的值 |
time | TIMESTAMP 或 INTEGER | 用于比较的时间戳 |
获取过去一天内每个设备每 5 分钟的温度
SELECT device_id, time_bucket('5 minutes', time) AS interval,last(temp, time)FROM metricsWHERE time > now () - INTERVAL '1 day'GROUP BY device_id, intervalORDER BY interval DESC;
此示例结合聚合过滤器使用 first 和 last,并避免输出中出现空值
SELECTTIME_BUCKET('5 MIN', time_column) AS interv,AVG(temperature) as avg_temp,first(temperature,time_column) FILTER(WHERE time_column IS NOT NULL) AS beg_temp,last(temperature,time_column) FILTER(WHERE time_column IS NOT NULL) AS end_tempFROM sensorsGROUP BY interv
关键词