What are Aggregate Functions in SQL Server? This article helps you to explore various Aggregate Functions in SQL Server.
Introduction
What are Aggregate Functions?
I can give different definitions.
1. Aggregate functions are built in sql server functions.
2. Aggregate functions are applied to sets of records rather than to a single record.
3. Aggregate functions performs a computation on a set of values rather than on a single value.
4. Aggregate functions uses to summarize data.
5. Aggregate functions perform a calculation on a set of values and return a single value.
Getting Started
The information in multiple records are processed in a particular manner and then displayed in a single record answer.
Aggregate functions are often used in conjuction with GROUP BY clause.
Aggregate functions cannot be nested. The expression cannot be a subquery.
The list of built in Aggregate functions are:
AVG, CHECKSUM, CHECKSUM_AGG, COUNT, COUNT_BIG, GROUPING, MAX, MIN, SUM, STDEV, STDEVP, VAR, VARP.
AVG
AVG returns the average of the values in expression. The expression must contain numeric values. Null values are ignored.
The syntax: AVG ([ ALL | DISTINCT ] <expression>)
select orderid, avg(UnitPrice) UnitPrice from dbo.[Order Details] group by orderid;
CHECKSUM
This is a basic hash algorithm usually used to detect changes or consistency in data.
"A digit representing the sum of the correct digits in a piece of stored or transmitted digital data, against which
later comparisons can be made to detect errors in the data."
The syntax: CHECKSUM(<expression>, [ ... n] | *)
SELECT CHECKSUM(orderid, UnitPrice, quantity), orderid, UnitPrice, quantity
FROM dbo.[Order Details] WHERE orderid = 10248
CHECKSUM_AGG
The same as CHECKSUM, but the primary difference is that CHECKSUM is oriented around rows,
whereas CHECKSUM_AGG is oriented around columns.
The syntax: CHECKSUM( [ALL | DISTINCT] <expression> )
SELECT CHECKSUM_AGG(CAST(UnitPrice AS int)) FROM dbo.[Order Details]
update dbo.[Order Details] set UnitPrice = 15
where orderid = 10248 and ProductID = 11
SELECT CHECKSUM_AGG(CAST(UnitPrice AS int)) FROM dbo.[Order Details]
COUNT
Returns the number of items in expression. The data type returned is of type int.
The syntax: COUNT( [ALL | DISTINCT] <expression> | * )
select COUNT(*), AVG(UnitPrice) from dbo.[Order Details]
COUNT_BIG
Returns the number of items in a group. The data type returned is of type bigint.
The syntax: COUNT( [ALL | DISTINCT] <expression> | * )
select COUNT_BIG(*), AVG(UnitPrice) from dbo.[Order Details]
GROUPING
MSDN : Is an aggregate function that causes an additional column to be output with a value of 1 when the row
is added by either the CUBE or ROLLUP operator, or 0 when the row is not the result of CUBE or ROLLUP.
Function adds an extra column to the output of a SELECT statement.
The syntax: GROUPING(<column_name> )
select orderid, sum(UnitPrice) UnitPrice, GROUPING(orderid) 'orderid'
from dbo.[Order Details] WHERE orderid = 10248
GROUP BY orderid WITH cube
MAX
Returns the maximum value from expression. Max ignores any NULL values.
The syntax: MAX( [ALL | DISTINCT] <expression> )
select MAX(QUANTITY) from dbo.[Order Details]
MIN
Returns the smallest value from expression. Min ignores any NULL values.
The syntax: MIN( [ALL | DISTINCT] <expression> )
select MIN(QUANTITY) from dbo.[Order Details]
SUM
Returns the total of all values in expression. Sum ignores any NULL values.
The syntax: SUM( [ALL | DISTINCT] <expression> )
select SUM(QUANTITY) from dbo.[Order Details]
STDEV
Returns the standard deviation of all values in expression. Stdev ignores any NULL values.
The syntax: STDEV( <expression> )
select STDEV(QUANTITY) from dbo.[Order Details]
STDEVP
Returns the standard deviation for the population of all values in expression. Stdevp ignores any NULL values.
The syntax: STDEVP( <expression> )
select STDEVP(QUANTITY) from dbo.[Order Details]
VAR
Returns the variance of all values in expression. Var ignores any NULL values.
The syntax: VAR( <expression> )
select VAR(QUANTITY) from dbo.[Order Details]
VARP
Returns the variance for the population of all values in expression. Varp ignores any NULL values.
The syntax: VARP( <expression> )
select VARP(QUANTITY) from dbo.[Order Details]
Summary
Hope this article helped you all, Thank you.