Sql-Server
查找與兩個或多個 Col2 值關聯的唯一 FK 的計數
我正在嘗試找到一種方法來計算與多行中至少兩個不同 Col2 值相關聯的唯一外鍵的計數。例子:
我想為大量數據找到與 Page1 和 Page2 相關的唯一 FK 的計數。對最有效的方法有什麼建議嗎?
編輯:感謝您的回復和跟進。我將嘗試澄清:我需要的查詢的期望結果是 1(與 page1 和 page2 相關聯的 FK 的唯一值的數量)。我要回答的問題本質上是有多少使用者在同一會話中點擊了 page1 並點擊了 page2。每個命中都是PK下唯一的key,是否屬於同一個會話由FK下的key決定。
您可以為此使用視窗函式,不需要自連接。
SELECT *, COUNT(*) OVER (PARTITION BY FK) FROM YourTable;
為了提高效率,您需要一個索引
FK
作為前導鍵列。
嘗試這樣的事情……
SELECT COUNT(DISTINCT FK) FROM Table WHERE FK IN ( SELECT FK FROM Table GROUP BY FK HAVING COUNT(DISTINCT Col2) > 1 )
至於大型表的性能,如果不知道表定義和存在於其上的索引,我無法給出建議。