如何从TimescaleDB的TimeWeightSummary中提取首尾点的时间戳与值?
提取TimeWeightSummary对象中的首尾数据点信息
要提取time_weight生成的TimeWeightSummary对象里的首尾数据点时间戳和对应数值,直接用TimescaleDB提供的专用访问函数即可,无需额外解析对象结构。
修改你的查询语句,加入对应函数就能获取所需信息:
WITH t as ( SELECT time_bucket('1 hour'::interval, time) as dt, time_weight('Linear', time, p) AS tw FROM tsdb.asset_sensor_sample WHERE asset = 16 GROUP BY time_bucket('1 hour'::interval, time) ) SELECT dt, tw, average(tw) as weighted_avg, -- 提取首尾数据点的时间戳和数值 first_time(tw) as first_datapoint_time, first_value(tw) as first_datapoint_value, last_time(tw) as last_datapoint_time, last_value(tw) as last_datapoint_value FROM t LIMIT 5;
各函数的作用:
first_time(tw):获取该时间桶内首个数据点的时间戳first_value(tw):获取该时间桶内首个数据点的数值last_time(tw):获取该时间桶内最后一个数据点的时间戳last_value(tw):获取该时间桶内最后一个数据点的数值
内容的提问来源于stack exchange,提问作者Sebastien Mottet
相关产品推荐
相关产品推荐

