在多列中尋找重複值
在 SQL 程式碼中,您尋求根據特定條件識別重複記錄。為此,您可以結合使用分組和條件篩選。
您提供的範例旨在尋找與名稱和城市列相符的重複記錄。但是,您的原始查詢有一個小問題:它還包含僅名稱或城市匹配的記錄,而不是要求兩者完全匹配。
要解決此問題,您可以如下修改查詢:
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
此查詢將[stuff] 表與子查詢連接起來,該子查詢計算每對唯一的名稱和城市值的重複記錄計數。透過將 HAVING 子句設定為僅包含計數大於 1 的群組,您可以將結果限制為代表實際重複項的行。
此查詢的輸出應與您所需的結果相符:
id | name | city |
---|---|---|
904834 | jim | London |
904835 | jim | London |
90145 | Fred | Paris |
90132 | Fred | Paris |
90133 | Fred | Paris |
以上是如何在 SQL 中尋找多列中的精確重複記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!