SQL CHECKSUM_AGG 函数

SQL CHECKSUM_AGG 是一个聚合函数,用于返回组中值的校验和。或者说,CHECKSUM_AGG 用于检测列中的更改。在本 CHECKSUM_AGG 演示中,我们将使用下面显示的数据。

Aggregate Functions Source Table 1

SQL CHECKSUM_AGG 示例

以下示例使用 CHECKSUM_AGG 函数来检测 Employee Id、Dept Id 和 Manager Id 列中的更改。

SELECT CHECKSUM_AGG(CAST([EmployeeID] AS INT)) AS [Emp ID]
      ,CHECKSUM_AGG(CAST(DeptID AS INT)) AS [Department ID] 
      ,CHECKSUM_AGG(CAST([ManagerID] AS INT)) AS [Manager ID]
 FROM [MyEmployees]
SQL CHECKSUM_AGG Function 2

SQL CHECKSUM_AGG 结合 DISTINCT 关键字

在此示例中,我们将使用 CHECKSUM_AGG 函数查找不同记录的校验和值。在 SQL Server 中,DISTINCT 关键字用于删除指定列名中的重复项。

SELECT CHECKSUM_AGG(CAST([EmployeeID] AS INT)) AS [Emp ID]
      ,CHECKSUM_AGG(DISTINCT CAST(DeptID AS INT)) AS [Unique Department ID] 
      ,CHECKSUM_AGG(DISTINCT CAST([ManagerID] AS INT)) AS [Unique Manager ID]
 FROM [MyEmployees]
SQL CHECKSUM_AGG Function 3

SQL CHECKSUM_AGG 结合 GROUP BY

聚合函数 示例将向您展示如何将 CHECKSUM_AGG 函数与 GROUP BY 子句一起使用。请参阅 GROUP BY 子句 以了解分组技术。

SELECT Occupation
      ,CHECKSUM_AGG(CAST([EmployeeID] AS INT)) AS [Emp ID]
      ,CHECKSUM_AGG(DISTINCT CAST(DeptID AS INT)) AS [Unique Department ID] 
      ,CHECKSUM_AGG(DISTINCT CAST([ManagerID] AS INT)) AS [Unique Manager ID]
 FROM [MyEmployees]
 GROUP BY Occupation
SQL CHECKSUM_AGG Function 4