我的influxdb数据库中有一些测量数据,我可以用它们查询:
pip
名称:E_real_con
时间值
---- -----
1537920001044785525 | 57160036.00
1538006401069651036 | 57227208.00
1538092800108297103 | 57294112.00
1538179200697333731 | 57366108.00
但是,“值”是一个累积值,我想获得两个连续值之间的差值/差异。
我尝试了以下操作:
[~, I] = sort(cost) ;
TB = TB(I) ;
但是,我收到以下错误消息:
select * from E_real_con
很高兴获得一些提示和反馈,以解决我的问题。
我正在使用influxdb 1.6.1
非常感谢! 克里斯托夫
答案 0 :(得分:1)
我找到了解决方案。以下两个错误必须纠正:
1)测量中的值是“字符串”类型,而不是“浮点”类型。由于数据来自nodered,因此在将数据写入influxdb之前,我清除了数据库并在nodered中使用parseFloat()。 顺便说一句:您可以通过以下方式检查测量字段的数据类型:
SHOW FIELD KEYS FROM E_real_con
2)看来查询命令需要一个“ where”
这有效:
SELECT difference(last(value)) FROM E_real_del WHERE time >= now() - 7d GROUP BY time(1d)
而:
SELECT difference(last(value)) FROM E_real_del GROUP BY time(1d)
不起作用。
我希望这可以帮助其他人。
答案 1 :(得分:0)
2)看来查询命令需要一个“ where”
比这更受限制。它需要一个带有最小时间戳的位置。
例如,以下内容没有任何结果:
select difference(last(value)) from WaterConsumption_Total where time < now() - 1d group by time(1d) fill(previous)
虽然这样做:
select difference(last(value)) from WaterConsumption_Total where time > '2019-08-23T00:00:00Z' group by time(1d) fill(previous)
这实际上使不可能将此类查询用作连续查询。