Skip to content

avg ​

Calculates the arithmetic mean of numeric values. NULL values are skipped.

Syntax

text
avg(x)

Arguments

  • x — A numeric column or expression. Integers, floating-point numbers, and decimals are supported. Legacy text and blob inputs use SQL numeric conversion. Convert native dates, times, intervals, and other nonnumeric values explicitly before averaging them.

Returned value

Returns a REAL mean for ordinary numeric inputs, or an exact decimal mean for native decimal inputs. Empty or all-NULL input returns NULL.

Do not mix native decimals with approximate inputs without an explicit cast. Exact overflow raises NUMERIC_OVERFLOW.

Examples

Basic usage

sql
CREATE TABLE measurements (x Int8);
INSERT INTO measurements VALUES (0), (1), (2), (3), (4), (5);
sql
SELECT avg(x) FROM measurements FORMAT csv;
text
2.5

Empty table returns NULL

sql
CREATE TABLE test (t UInt8);
sql
SELECT avg(t) FROM test FORMAT csv;
text
\N

Average request duration

Use a numeric duration in a known unit:

sql
CREATE TABLE requests (req_id Int64, duration_ms UInt32);
INSERT INTO requests VALUES (1, 100), (2, 200), (3, 300);
sql
SELECT avg(duration_ms) AS avg_duration_ms FROM requests FORMAT csv;
text
200.0