问题描述
SELECT "ApparentPower" FROM "machine01" WHERE "pin_no" = 'pin 2 ' AND $timeFilter;
我想按字段“ApparentPower”过滤并且只显示大于 10 的值。我该怎么做?
如果我运行查询 SELECT "ApparentPower" FROM "machine01" WHERE "pin_no" = 'pin 2 ' AND $timeFilter AND "ApparentPower" > 10;
,即使存在大于 10 的值,也不会返回任何值。
此外,如果我运行查询 SELECT "ApparentPower" FROM "machine01" WHERE "pin_no" = 'pin 2 ' AND $timeFilter AND "ApparentPower" < 10;
,我不会再次返回任何值。
但是,如果我运行查询 SELECT "ApparentPower" FROM "machine01" WHERE "pin_no" = 'pin 2 ' AND $timeFilter AND "ApparentPower" != 10;
,我会返回所有值。
我已经使用命令 curl -sL -I localhost:8086/ping
检查了正在运行的 influx 版本:
HTTP/1.1 204 No Content
Content-Type: application/json
Request-Id: f4132538-7129-11eb-b770-000000000000
X-Influxdb-Version: 1.1.1
Date: Wed,17 Feb 2021 14:10:56 GMT
解决方法
很可能,“ApparentPower”字段作为字符串写入 InfluxDB。
您可以使用以下方法进行验证:SHOW FIELD KEYS FROM "machine01"
字段必须写为整数或浮点数才能与 <
进行比较
更改数据类型:
您不能更改现有测量字段的数据类型,但您可以:
- 写入不同的字段名称,
- 使用
DROP MEASUREMENT machine01
删除测量值, - 如果您启用了分片,请等到写入转到下一个分片。