집 >데이터 베이스 >MySQL 튜토리얼 >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 중국어 웹사이트의 기타 관련 기사를 참조하세요!