任何人都可以解释一下以下查询的含义吗?
我不理解某些链接中的校验和。这让我感到困惑。
SELECT COUNT(DISTINCT CHECKSUM(StudentID, RegistrationDate))
FROM RegistrationSummary
谢谢大家。
答案 0 :(得分:1)
Checksum根据给定的列计算整数哈希码。它通常用于检查两个不同的表中是否存在相同的值,而不必逐个单独比较每个列。
因此,您提供的查询是计算表中具有[StudentID]和[RegistrationDate]的区别值的行数。该函数是否等效于:
SELECT Count(*) FROM
(
SELECT DISTINCT StudentID, RegistrationDate
FROM RegistrationSummary
)
请注意,两个完全不同的值集总是可能最终具有完全相同的哈希码,因此这不是一个完美的技术。但考虑到校验和的创建方式,这是不太可能的,所以当一个十亿分之一左右的错误计数可以接受时,它是比较数据的合理防御方法。
答案 1 :(得分:0)
在这种情况下,它只是允许连接2个不同的数据类型,以检查2列中的唯一性。
您可以轻松地将其重写为......
SELECT COUNT(DISTINCT CONCAT(StudentID, RegistrationDate))
FROM RegistrationSummary;