计算多列中的不同值
要根据表中的多个列计算不同项目的数量,请考虑以下查询:
SELECT COUNT(DISTINCT DocumentId, DocumentSessionId) FROM DocumentOutputItems
此查询有效地计算 DocumentId 和 DocumentSessionId 的不同组合,提供期望的结果。
替代方法
虽然提供的查询提供了简单的解决方案,但替代方法可能会提高某些情况下的性能:
使用持久计算列:
为了获得更好的性能,可以基于 DocumentId 和 DocumentSessionId 的哈希或串联来创建持久计算列。这允许数据库在计算列上建立索引并创建统计信息。
ALTER TABLE DocumentOutputItems ADD ComputedColumn AS HASHBYTES('MD5', DocumentId + DocumentSessionId) PERSISTED
填充计算列后,其上的不同计数将相当于原始查询:
SELECT COUNT(DISTINCT ComputedColumn) FROM DocumentOutputItems
通过优化数据库结构并最大限度地减少查询数量,这些方法可以增强跨多列的不同计数操作的性能。
以上是如何有效地计算数据库表中多个列的不同组合?的详细内容。更多信息请关注PHP中文网其他相关文章!