하나의 컬럼에 중복 된 엔트리가있는 테이블의 모든 엔트리에 대한 리포트를 만들고 싶다. 이제 우리는이 같은 테이블을 가정 해 봅시다 :mysql은 중복을 찾을 때 모든 레코드를 얻는다.
customer_name | some_number
Tom 1
Steve 3
Chris 4
Tim 3
...
내가 중복으로 some_number
이있는 모든 기록을 보여주고 싶다. 나는 모든 중복 레코드를 표시하려면이 같은 쿼리를 사용하고 있습니다 :
select customer_name, some_number from table where some_number in (select some_number from table group by some_number having count(*) > 1) order by some_number;
이 작은 테이블에 대해 작동하지만가 실제로 작동하는 데 필요한 하나가 상당히 크다. 30,000 + 행 및 그것은 영원히 복용하고 있습니다! 누군가 이렇게 할 수있는 더 좋은 방법이 있습니까?
감사합니다.
이 조금 더 빠르게 작동하는 것 같습니다. –
이 방법을 사용하는 것이 왜 더 빠 른지 설명을 추가했습니다. – Jocelyn