> 데이터 베이스 > MySQL 튜토리얼 > SQL의 여러 열에서 중복 행을 찾는 방법은 무엇입니까?

SQL의 여러 열에서 중복 행을 찾는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2025-01-03 16:14:39
원래의
821명이 탐색했습니다.

How to Find Duplicate Rows Across Multiple Columns in SQL?

여러 열에서 중복 항목 찾기

SQL에서는 여러 열에서 중복 값이 ​​있는 행을 식별해야 하는 상황이 발생할 수 있습니다. ID, 이름, 도시와 같은 열을 포함하는 "stuff"라는 테이블이 있다고 가정합니다. 이름 열과 도시 열 모두에서 동일한 값을 가진 행을 검색하려고 합니다.

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
로그인 후 복사

설명

  • 기본 쿼리(s.id, t.* 선택)는 원본 테이블에서 id 열을 선택합니다([ stuff]) 및 하위 쿼리의 모든 열(t).
  • 하위 쿼리(이름, 도시, count(*) as qty)는 테이블을 이름과 도시별로 그룹화하고 각 쌍의 발생 횟수를 계산합니다.
  • count(*) > 1 절은 개수가 1보다 큰(예: 중복) 이름과 도시 쌍만 포함하도록 하위 쿼리를 필터링합니다.
  • 조인 조건(s.name = t.name 및 s.city = t.city) 이름과 도시를 기준으로 원본 테이블을 하위 쿼리에 연결하고 조합이 여러 개 나타나는 행을 선택합니다. times.

출력

이 쿼리는 중복된 ID와 이름-도시 쌍을 보여주는 다음 출력을 반환합니다.

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으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿