首頁 > 資料庫 > mysql教程 > SQL如何根據多列高效率地識別重複記錄?

SQL如何根據多列高效率地識別重複記錄?

Patricia Arquette
發布: 2025-01-04 19:11:39
原創
824 人瀏覽過

How to Efficiently Identify Duplicate Records Based on Multiple Columns in SQL?

識別多列中的重複記錄

提出的挑戰是複製所提供的SQL 程式碼的功能,旨在識別和檢索基於兩列(即“名稱”和“城市”)組合的重複記錄。目標是排除只有一列(“名稱”或“城市”)匹配的情況,並且僅考慮兩列相同的記錄。

為了滿足此要求,提供的答案利用子查詢來計數「stuff」表中「name」和「city」組合的出現次數。此子查詢將按「name」和「city」分組的行數進行計數,並過濾掉那些計數大於 1 的組合(表示重複項)。

select name, city, count(*) as qty
from [stuff]
group by name, city
having count(*) > 1
登入後複製

然後主查詢連接原始「stuff」表與子查詢結果符合「名稱」和「城市」。此連線操作有效地識別符合指定條件的重複記錄。最終結果透過排除只有一列匹配的情況來消除誤報。

select s.id, t.*
from [stuff] s
join (
...
    select name, city, count(*) as qty
    from [stuff]
    group by name, city
    having count(*) > 1
) t on s.name = t.name and s.city = t.city
登入後複製

因此,查詢成功檢索所需的輸出:

id      name  city   
904834  jim   London  
904835  jim   London  
90145   Fred  Paris   
90132   Fred  Paris
90133   Fred  Paris
登入後複製

此方法提供了一種高效的方法基於多列識別重複記錄的通用解決方案,確保查詢結果的準確性和完整性。

以上是SQL如何根據多列高效率地識別重複記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板