>데이터 베이스 >MySQL 튜토리얼 >SQL의 여러 열에서 정확한 중복 레코드를 찾는 방법은 무엇입니까?

SQL의 여러 열에서 정확한 중복 레코드를 찾는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-04 11:36:34779검색

How to Find Exact Duplicate Records Across Multiple Columns in SQL?

여러 열에서 중복 값 찾기

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] 테이블을 조인합니다. 개수가 1보다 큰 그룹만 포함하도록 HAVING 절을 설정하면 실제 중복을 나타내는 행으로 결과를 제한할 수 있습니다.

이 쿼리의 출력은 원하는 결과와 일치해야 합니다.

id name city
904834 jim London
904835 jim London
90145 Fred Paris
90132 Fred Paris
90133 Fred Paris

위 내용은 SQL의 여러 열에서 정확한 중복 레코드를 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.