Mathematical Operators

Mathematical Operators

Mathematical operators follow the standard order of operations. That is, parentheses take precedence to division and multiplication, which takes precedence to addition and substraction. For example 5 / 2 + 3 * 2 = (5 / 2) + (3 * 2) and 5 + 2 * 3 - 2 = 5 + (2 * 3) - 2.

Supported Operators

Addition

You can add a constant.

SELECT "A" + 5 FROM "add"
SELECT * FROM "add" WHERE "A" + 5 > 10

You can add together other field keys.

SELECT "A" + "B" FROM "add"
SELECT * FROM "add" WHERE "A" + "B" >= 10

Subtraction

You can subtract a constant.

SELECT 1 - "A" FROM "sub"
SELECT * FROM "sub" WHERE 1 - "A" <= 3

You can subtract one field key from another field key.

SELECT "A" - "B" FROM "sub"
SELECT * FROM "sub" WHERE "A" - "B" <= 1

Multiplication

You can multiply by a constant.

SELECT 10 * "A" FROM "mult"
SELECT * FROM "mult" WHERE "A" * 10 >= 20

You can multiply by other field keys.

SELECT "A" * "B" * "C" FROM "mult"
SELECT * FROM "mult" WHERE "A" * "B" <= 80

Multiplication distributes across other operators

SELECT 10 * ("A" + "B" + "C") FROM "mult"
SELECT 10 * ("A" - "B" - "C") FROM "mult"
SELECT 10 * ("A" + "B" - "C") FROM "mult"

Division

You can divide by a constant.

SELECT 10 / "A" FROM "div"
SELECT * FROM "div" WHERE "A" / 10 <= 2

You can divide by other field keys.

SELECT "A" / "B" FROM "div"
SELECT * FROM "div" WHERE "A" / "B" >= 10

Division distributes across other operators

SELECT 10 / ("A" + "B" + "C") FROM "mult"

Operators with Functions

The use of mathematical operators inside of function calls is currently unsupported. Note that InfluxDB only allows functions in the SELECT clause.

For example

SELECT 10 * mean("value") FROM "cpu"

will work, however

SELECT mean(10 * "value") FROM "cpu"

will yield a parse error.

Note: Starting with version 1.2, InfluxQL supports subqueries which offer similar functionality to using mathematical operators inside a function call. See Data Exploration for more information.

Unsupported Operators

Inequalities

Using any of =,!=,<,>,<=,>=,<> in the SELECT clause yields empty results for all types. See GitHub issue 3525.

Miscellaneous

Using any of %, ^ will yield a parse error. If you would like to see support for these operators open an issue.

Logical Operators are Unsupported

Using any of &,|,!|,NAND,XOR,NOR will yield parse error.

Additionally using AND, OR in the SELECT clause of a query will not behave as mathematical operators and simply yield empty results, as they are tokens in InfluxQL.

© 2015 InfluxData, Inc.
Licensed under the MIT license.
https://docs.influxdata.com/influxdb/v1.2/query_language/math_operators/

在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号

意见反馈
返回顶部