Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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 )  
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's 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's the result set.
------------------------  
287