是否有更好的方法来执行这样的查询:
SELECT COUNT(*)
FROM (SELECT DISTINCT DocumentId, DocumentSessionId
FROM DocumentOutputItems) AS internalQuery
我需要计算此表中不同项目的数量,但不同项目超过两列。
我的查询工作正常,但我想知道是否可以仅使用一个查询(不使用子查询)获得最终结果
最佳答案
如果您想提高性能,可以尝试在两列的哈希值或串联值上创建持久计算列。
一旦它被持久化,只要该列是确定性的并且您使用“健全的”数据库设置,就可以对其进行索引和/或可以在其上创建统计信息。
我相信计算列的不同计数相当于您的查询。
关于sql - 对多列进行 DISTINCT 计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1471250/