InfluxQL aggregate functions
Use aggregate functions to assess, aggregate, and return values in your data.
Aggregate functions return one row containing the aggregate values from each InfluxQL group.
Examples use the sample data set provided in the
Get started with InfluxDB tutorial.
Returns the number of non-null field values.
- field_expression: Expression to identify one or more fields to operate on.
Can be a field key,
constant, regular expression, or wildcard (
*
).
Supports all field types.
Count the number of non-null values in a field
SELECT COUNT(temp) FROM home
time | count |
---|
1970-01-01T00:00:00Z | 26 |
Count the number of non-null values in each field
SELECT COUNT(*) FROM home
time | count_co | count_hum | count_temp |
---|
1970-01-01T00:00:00Z | 26 | 26 | 26 |
Count the number of non-null values in fields where the field key matches a regular expression
SELECT COUNT(/^[th]/) FROM home
time | count_hum | count_temp |
---|
1970-01-01T00:00:00Z | 26 | 26 |
Count distinct values for a field
InfluxQL supports nesting DISTINCT()
in COUNT()
.
SELECT COUNT(DISTINCT(co)) FROM home
time | count |
---|
1970-01-01T00:00:00Z | 12 |
Count the number of non-null field values within time windows (grouped by time)
SELECT
COUNT(temp)
FROM home
WHERE
room = 'Kitchen'
AND time >= '2025-08-08T08:00:00Z'
AND time <= '2025-08-08T20:00:00Z'
GROUP BY time(6h)
time | count |
---|
2025-08-08T06:00:00Z | 4 |
2025-08-08T12:00:00Z | 6 |
2025-08-08T18:00:00Z | 3 |
Returns the list of unique field values.
- field_key: Field key to return distinct values from.
Supports all field types.
- InfluxQL supports nesting
DISTINCT()
with COUNT()
.
List the distinct field values
SELECT DISTINCT(co) FROM home
time | distinct |
---|
1970-01-01T00:00:00Z | 0 |
1970-01-01T00:00:00Z | 1 |
1970-01-01T00:00:00Z | 3 |
1970-01-01T00:00:00Z | 4 |
1970-01-01T00:00:00Z | 7 |
1970-01-01T00:00:00Z | 5 |
1970-01-01T00:00:00Z | 9 |
1970-01-01T00:00:00Z | 18 |
1970-01-01T00:00:00Z | 14 |
1970-01-01T00:00:00Z | 22 |
1970-01-01T00:00:00Z | 17 |
1970-01-01T00:00:00Z | 26 |
Returns the area under the curve for queried field values
and converts those results into the summed area per unit of time.
INTEGRAL()
does not support fill()
.INTEGRAL()
supports int64 and float64 field value data types.
INTEGRAL(field_expression[, unit])
- field_expression: Expression to identify one or more fields to operate on.
Can be a field key,
constant, regular expression, or wildcard (
*
). - unit: Unit of time to use when calculating the integral.
Default is
1s
(one second).
Calculate the integral for a field
SELECT
INTEGRAL(co)
FROM home
WHERE room = 'Kitchen'
time | integral |
---|
1970-01-01T00:00:00Z | 266400 |
Calculate the integral for a field and specify the unit option
SELECT
INTEGRAL(co, 1h)
FROM home
WHERE room = 'Kitchen'
time | integral |
---|
1970-01-01T00:00:00Z | 74 |
Calculate the integral for each field and specify the unit option
Return the area under the curve (in minutes) for the field values associated
with each field key that stores numeric values in the h2o_feet
measurement.
The h2o_feet
measurement has on numeric field: water_level
.
SELECT
INTEGRAL(*, 1h)
FROM home
WHERE room = 'Kitchen'
time | integral_co | integral_hum | integral_temp |
---|
1970-01-01T00:00:00Z | 74 | 435 | 272.25 |
Calculate the integral for the field keys that matches a regular expression
SELECT
INTEGRAL(/^[th]/, 1h)
FROM home
WHERE room = 'Kitchen'
time | integral_hum | integral_temp |
---|
1970-01-01T00:00:00Z | 435 | 272.25 |
Calculate the integral for a field grouping by time
SELECT
INTEGRAL(co, 1h)
FROM home
WHERE
room = 'Kitchen'
AND time >= '2025-08-08T08:00:00Z'
AND time <= '2025-08-08T20:00:00Z'
GROUP BY time(6h)
time | integral |
---|
2025-08-08T06:00:00Z | 0 |
2025-08-08T12:00:00Z | 30 |
2025-08-08T18:00:00Z | 44 |
Returns the arithmetic mean (average) of field values.
- field_expression: Expression to identify one or more fields to operate on.
Can be a field key,
constant, regular expression, or wildcard (
*
).
Supports numeric fields.
Calculate the mean value of a field
SELECT MEAN(temp) FROM home
time | mean |
---|
1970-01-01T00:00:00Z | 22.396153846153844 |
Calculate the mean value of each field
time | mean_co | mean_hum | mean_temp |
---|
1970-01-01T00:00:00Z | 5.269230769230769 | 36.15 | 22.396153846153844 |
Calculate the mean value of fields where the field key matches a regular expression
SELECT MEAN(/^[th]/) FROM home
time | mean_hum | mean_temp |
---|
1970-01-01T00:00:00Z | 36.15 | 22.396153846153844 |
Calculate the mean value of a field within time windows (grouped by time)
SELECT
MEAN(temp)
FROM home
WHERE
room = 'Kitchen'
AND time >= '2025-08-08T08:00:00Z'
AND time <= '2025-08-08T20:00:00Z'
GROUP BY time(6h)
time | mean |
---|
2025-08-08T06:00:00Z | 22.275 |
2025-08-08T12:00:00Z | 22.649999999999995 |
2025-08-08T18:00:00Z | 23.033333333333335 |
Returns the middle value from a sorted list of field values.
- field_expression: Expression to identify one or more fields to operate on.
Can be a field key,
constant, regular expression, or wildcard (
*
).
Supports numeric fields.
MEDIAN()
is nearly equivalent to
PERCENTILE(field_key, 50)
,
except MEDIAN()
returns the average of the two middle field values if the
field contains an even number of values.
Returns the most frequent value in a list of
field values.
- field_expression: Expression to identify one or more fields to operate on.
Can be a field key,
constant, regular expression, or wildcard (
*
).
Supports all field types.
MODE()
returns the field value with the earliest
timestamp
if there’s a tie between two or more values for the maximum number of occurrences.
Calculate the mode value of a field
SELECT MODE(co) FROM home
time | mode |
---|
1970-01-01T00:00:00Z | 0 |
Calculate the mode value of each field
time | mode_co | mode_hum | mode_temp |
---|
1970-01-01T00:00:00Z | 0 | 36 | 22.7 |
Calculate the mode of field keys that match a regular expression
SELECT MODE(/^[th]/) FROM home
time | mode_hum | mode_temp |
---|
1970-01-01T00:00:00Z | 36 | 22.7 |
Calculate the mode a field within time windows (grouped by time)
SELECT
MODE(co)
FROM home
WHERE
room = 'Kitchen'
AND time >= '2025-08-08T08:00:00Z'
AND time <= '2025-08-08T20:00:00Z'
GROUP BY time(6h)
time | mode |
---|
2025-08-08T06:00:00Z | 0 |
2025-08-08T12:00:00Z | 1 |
2025-08-08T18:00:00Z | 18 |
Returns the difference between the minimum and maximum
field values.
- field_expression: Expression to identify one or more fields to operate on.
Can be a field key,
constant, regular expression, or wildcard (
*
).
Supports numeric fields.
Calculate the spread of a field
SELECT SPREAD(temp) FROM home
time | spread |
---|
1970-01-01T00:00:00Z | 2.3000000000000007 |
Calculate the spread of each field
SELECT SPREAD(*) FROM home
time | spread_co | spread_hum | spread_temp |
---|
1970-01-01T00:00:00Z | 26 | 1 | 2.3000000000000007 |
Calculate the spread of field keys that match a regular expression
SELECT SPREAD(/^[th]/) FROM home
time | spread_hum | spread_temp |
---|
1970-01-01T00:00:00Z | 1 | 2.3000000000000007 |
Calculate the spread of a field within time windows (grouped by time)
SELECT
SPREAD(co)
FROM home
WHERE
room = 'Kitchen'
AND time >= '2025-08-08T08:00:00Z'
AND time <= '2025-08-08T20:00:00Z'
GROUP BY time(6h)
time | spread |
---|
2025-08-08T06:00:00Z | 0 |
2025-08-08T12:00:00Z | 9 |
2025-08-08T18:00:00Z | 8 |
Returns the standard deviation of field values.
- field_expression: Expression to identify one or more fields to operate on.
Can be a field key,
constant, regular expression, or wildcard (
*
).
Supports numeric fields.
Calculate the standard deviation of a field
SELECT STDDEV(temp) FROM home
time | stddev |
---|
1970-01-01T00:00:00Z | 0.5553238833191091 |
Calculate the standard deviation of each field
SELECT STDDEV(*) FROM home
time | stddev_co | stddev_hum | stddev_temp |
---|
1970-01-01T00:00:00Z | 7.774613519951676 | 0.25495097567963926 | 0.5553238833191091 |
Calculate the standard deviation of fields where the field key matches a regular expression
SELECT STDDEV(/^[th]/) FROM home
time | stddev_hum | stddev_temp |
---|
1970-01-01T00:00:00Z | 0.25495097567963926 | 0.5553238833191091 |
Calculate the standard deviation of a field within time windows (grouped by time)
SELECT
STDDEV(co)
FROM home
WHERE
room = 'Kitchen'
AND time >= '2025-08-08T08:00:00Z'
AND time <= '2025-08-08T20:00:00Z'
GROUP BY time(6h)
time | stddev |
---|
2025-08-08T06:00:00Z | 0 |
2025-08-08T12:00:00Z | 3.6742346141747673 |
2025-08-08T18:00:00Z | 4 |
Returns the sum of field values.
- field_expression: Expression to identify one or more fields to operate on.
Can be a field key,
constant, regular expression, or wildcard (
*
).
Supports numeric fields.
Calculate the sum of values in a field
time | sum |
---|
1970-01-01T00:00:00Z | 137 |
Calculate the sum of values in each field
time | sum_co | sum_hum | sum_temp |
---|
1970-01-01T00:00:00Z | 137 | 939.9 | 582.3 |
Calculate the sum of values for fields where the field key matches a regular expression
SELECT SUM(/^[th]/) FROM home
time | sum_hum | sum_temp |
---|
1970-01-01T00:00:00Z | 939.9 | 582.3 |
Calculate the sum of values in a field within time windows (grouped by time)
SELECT
SUM(co)
FROM home
WHERE
room = 'Kitchen'
AND time >= '2025-08-08T08:00:00Z'
AND time <= '2025-08-08T20:00:00Z'
GROUP BY time(6h)
time | sum |
---|
2025-08-08T06:00:00Z | 0 |
2025-08-08T12:00:00Z | 21 |
2025-08-08T18:00:00Z | 66 |
Was this page helpful?
Thank you for your feedback!
Thank you for being part of our community!
We welcome and encourage your feedback and bug reports for InfluxDB Cloud Serverless and this documentation.
To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.