September 26, 2024: PostgreSQL 17 Released!
Supported Versions: Current (17) / 16 / 15 / 14 / 13 / 12
Development Versions: devel
Unsupported versions: 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
This documentation is for an unsupported version of PostgreSQL.
You may want to view the same page for the current version, or one of the other supported versions listed above instead.

6.14. Aggregate Functions

Aggregate functions compute a single result value from a set of input values. Table 6-33 show the built-in aggregate functions. The special syntax considerations for aggregate functions are explained in Section 1.2.5. Consult the PostgreSQL 7.3.21 Tutorial for additional introductory information.

Table 6-33. Aggregate Functions

Function Argument Type Return Type Description  
avg(expression) smallint, integer, bigint, real, double precision, numeric, or interval. numeric for any integer type argument, double precision for a floating-point argument, otherwise the same as the argument data type the average (arithmetic mean) of all input values  
count(*)   bigint number of input values  
count(expression) any bigint number of input values for which the value of expression is not null  
max(expression) any numeric, string, or date/time type same as argument type maximum value of expression across all input values  
min(expression) any numeric, string, or date/time type same as argument type minimum value of expression across all input values  
stddev(expression) smallint, integer, bigint, real, double precision, or numeric. double precision for floating-point arguments, otherwise numeric. sample standard deviation of the input values  
sum(expression) smallint, integer, bigint, real, double precision, numeric, or interval bigint for smallint or integer arguments, numeric for bigint arguments, double precision for floating-point arguments, otherwise the same as the argument data type sum of expression across all input values  
variance(expression) smallint, integer, bigint, real, double precision, or numeric. double precision for floating-point arguments, otherwise numeric. sample variance of the input values (square of the sample standard deviation)  

It should be noted that except for count, these functions return a null value when no rows are selected. In particular, sum of no rows returns null, not zero as one might expect. The function coalesce may be used to substitute zero for null when necessary.