在SQL表中找出多列的重複值
使用GROUP BY
子句的標準方法可以有效地辨識單一列中的重複值。但是,如果您需要查找多個欄位(例如姓名和電子郵件)中的重複項怎麼辦?
要解決此問題,只需擴充GROUP BY
子句以包含所有相關的欄位:
<code class="language-sql">SELECT name, email, COUNT(*) FROM users GROUP BY name, email HAVING COUNT(*) > 1</code>
透過對姓名和電子郵件進行分組,此查詢將有效地識別這兩列組合的重複項。
注意:不同的資料庫系統可能對這種語法有不同的支援。某些較舊版本的SQL資料庫要求GROUP BY
子句中包含所有非聚合列。但是,現代資料庫引擎(例如PostgreSQL和MySQL)通常支援對非聚合列進行分組。
請記住,函數依賴規則適用,這意味著用於分組的列應該彼此之間具有強關係。如果關係較弱,您可能會得到意外的結果。
為了確保在不同資料庫系統上的行為一致,建議在GROUP BY
子句中包含所有非聚合列,或查閱特定資料庫的文檔以了解其實作細節。
以上是如何找到 SQL 表中多列中的重複行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!