CHECKSUM_AGG (Transact-SQL)

Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance SQL analytics endpoint in Microsoft Fabric Warehouse in Microsoft Fabric

This function returns the checksum of the values in a group. CHECKSUM_AGG ignores null values. The OVER clause can follow CHECKSUM_AGG.

Transact-SQL syntax conventions

Syntax

CHECKSUM_AGG ( [ ALL | DISTINCT ] expression )  

Note

To view Transact-SQL syntax for SQL Server 2014 (12.x) and earlier versions, see Previous versions documentation.

Arguments

ALL
Applies the aggregate function to all values. ALL is the default argument.

DISTINCT
Specifies that CHECKSUM_AGG returns the checksum of unique values.

expression
An integer expression. CHECKSUM_AGG does not allow use of aggregate functions or subqueries.

Return types

Returns the checksum of all expression values as int.

Remarks

CHECKSUM_AGG can detect changes in a table.

The CHECKSUM_AGG result does not depend on the order of the rows in the table. Also, CHECKSUM_AGG functions allow the use of the DISTINCT keyword and the GROUP BY clause.

If an expression list value changes, the list checksum value list will also probably change. However, a small possibility exists that the calculated checksum will not change.

CHECKSUM_AGG has functionality similar to that of other aggregate functions. For more information, see Aggregate Functions (Transact-SQL).

Examples

These examples use CHECKSUM_AGG to detect changes in the Quantity column of the ProductInventory table in the AdventureWorks2022 database.

--Get the checksum value before the column value is changed.  

SELECT CHECKSUM_AGG(CAST(Quantity AS INT))  
FROM Production.ProductInventory;  
GO  

Here is the result set.

------------------------  
262  
UPDATE Production.ProductInventory   
SET Quantity=125  
WHERE Quantity=100;  
GO  

--Get the checksum of the modified column.  
SELECT CHECKSUM_AGG(CAST(Quantity AS INT))  
FROM Production.ProductInventory;  

Here is the result set.

------------------------  
287  

See also

CHECKSUM (Transact-SQL)

HASHBYTES (Transact-SQL)

BINARY_CHECKSUM (Transact-SQL)

OVER Clause (Transact-SQL)