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
关键词
在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页面。