Apache IoTDB筛选从高到低跳变数据时查询语句无法执行求助
解决方案
在Apache IoTDB中,WHERE子句仅支持过滤原始时序数据,像difference()这类序列计算函数无法直接在WHERE中使用——因为它需要基于相邻数据行计算差值,属于查询后处理逻辑。你需要通过子查询先计算出差值,再对结果进行过滤。
针对你的需求,正确的查询语句如下:
select s1 from ( select s1, difference(s1) as diff from root.db.ss.v1 where time between now() - 1d and now() ) where diff > 0
另外注意:如果你要筛选的是从高到低的跳变,应该把条件改为diff < 0——因为difference(s1)返回的是当前值与前一个值的差值,当前值低于前一个值时差值为负。
内容的提问来源于stack exchange,提问作者Monster Zhang
相关产品推荐
相关产品推荐

