Aggregate Functions (Transact-SQL)

**APPLIES TO:** ![yes](media/yes.png)SQL Server (starting with 2008) ![yes](media/yes.png)Azure SQL Database ![yes](media/yes.png)Azure SQL Data Warehouse ![yes](media/yes.png)Parallel Data Warehouse

An aggregate function performs a calculation on a set of values, and returns a single value. Except for COUNT, aggregate functions ignore null values. Aggregate functions are often used with the GROUP BY clause of the SELECT statement.

All aggregate functions are deterministic. In other words, aggregate functions return the same value each time that they are called, when called with a specific set of input values. See Deterministic and Nondeterministic Functions for more information about function determinism. The OVER clause may follow all aggregate functions, except the GROUPING or GROUPING_ID functions.

Use aggregate functions as expressions only in the following situations: - The select list of a SELECT statement (either a subquery or an outer query).
- A HAVING clause.

Transact\-SQL provides the following aggregate functions:

APPROX_COUNT_DISTINCT MIN
AVG STDEV
CHECKSUM_AGG STDEVP
COUNT STRING_AGG
COUNT_BIG SUM
GROUPING VAR
GROUPING_ID VARP
MAX

See also

Built-in Functions (Transact-SQL)
OVER Clause (Transact-SQL)