Timescale Cloud:性能、扩展、企业级

自托管产品

MST

last 聚合函数允许您根据另一列的排序获取某一列的值。例如,last(temperature, time) 返回聚合组内根据时间排序的最新温度值。

重要提示

lastfirst 命令不使用索引,它们对组进行顺序扫描。它们主要用于 GROUP BY 聚合内的有序选择,而不是作为 ORDER BY time DESC LIMIT 1 子句的替代来查找最新值(后者使用索引)。

名称类型描述
value任意元素要返回的值
timeTIMESTAMP 或 INTEGER用于比较的时间戳

获取过去一天内每个设备每 5 分钟的温度

SELECT device_id, time_bucket('5 minutes', time) AS interval,
last(temp, time)
FROM metrics
WHERE time > now () - INTERVAL '1 day'
GROUP BY device_id, interval
ORDER BY interval DESC;

此示例结合聚合过滤器使用 first 和 last,并避免输出中出现空值

SELECT
TIME_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_temp
FROM sensors
GROUP BY interv

关键词

此页面有问题?报告问题 或 编辑此页面 在 GitHub。