計算多列中的不同值
要根據表中的多個欄位計算不同項目的數量,請考慮以下查詢:
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中文網其他相關文章!