Mysql
兩列的不同組合
我目前正在嘗試在表中找到不同的組合,因為其中兩列彼此之間存在多對多關係。
數據圍繞著針對特定客戶端執行的備份策略,可以總結如下:
我想為上表生成的答案是7,因為存在不同組合的數量。
有沒有人知道如何做到這一點?我嘗試過使用嵌套計數和不同的值(我能夠過濾到一列但不能同時過濾兩者)。
您可以通過執行來計算不同的元素:
select count(distinct policy_id, client_id) from policy_client;
另一種選擇是分組併計算:
select count(*) from (select policy_id, client_id from policy_client group by 1,2) a;
執行這兩個版本,看看哪個版本在您的數據集上表現更好。
如果您在(policy_id 和 client_id)上有一個鍵,那麼這是一種非常快速但不完全準確的方法,您還可以檢查該索引的基數,但這是一個近似而不准確的數字。
我認為最簡單的應該是:
SELECT COUNT(DISTINCT policy, client) AS distinct_combinations FROM table_name ;