This is archived documentation for InfluxData product versions that are no longer maintained. For newer documentation, see the latest InfluxData documentation.
Note: Currently all mathematical operators work solely on floats
.
For the moment being any int
involved will be converted to a float
as any operation performed on an int
would return a null
value.
This fixes the problem for all integer values up to 2^53.
Issue 3614 tracks implementing true integer math, which will support values up to 2^63.
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
Note: Any expression that involves adding, subtracting, or dividing by 0 yields a null
value.
This is not intentional and is the result of a bug.
See issue 3000.
Addition
You can add a constant.
SELECT A + 5 FROM add
You can add together other field keys.
SELECT A + B FROM add
Subtraction
You can subtract a constant.
SELECT 1 - A FROM sub
You can subtract one field key from another field key.
SELECT A - B FROM sub
Multiplication
You can multiply by a constant.
SELECT 10 * A FROM mult
You can multiply by other field keys.
SELECT A * B * C FROM mult
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
You can divide by other field keys.
SELECT A / B FROM div
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.
For example
SELECT 10 * mean(value) FROM cpu
will work, however
SELECT mean(10 * value) FROM cpu
will yield a parse error.
Unsupported Operators
Inequalities
Using any of =
,!=
,<
,>
,<=
,>=
will yield empty results for all types.
See 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.