2011-11-30 3 views
0

발견 나는이여러 중복

ticket_id destination 
--------- ----------- 
5   Paris 
5   Paris 
5   California 
5   Paris 
6   Nebraska 
15   London 
6   Nebraska 
6   Nebraska 

같은 테이블 내가 2 배 이상의 테이블에 동일한 목적지에 모든 티켓 ID를 선택하고자합니다.

SELECT ticket_id, destination, 
COUNT(ticket_id) AS num_times 
FROM table 
GROUP BY ticket_id 
HAVING (COUNT(*) > 2) 

그러나 내가 얼마나 확실하지 않다 :

ticket_id destination num_times 
--------- ----------- --------- 
5   Paris  3 
6   Nebraska 3 

내가 반복되는 모든 티켓 특정 시간을 얻는 방법을 알고 같은

그래서,이 경우에는, 나는 테이블을 얻을 것이다 대상 유사점을 추가 할 수 있습니다. 모두 티켓 ID 및 대상으로

답변

4

그냥 그룹 :

SELECT ticket_id, destination, 
COUNT(ticket_id) AS num_times 
FROM table 
GROUP BY ticket_id, destination 
HAVING (COUNT(*) > 2) 
1

하는 부수적으로, 쿼리가 꽤 큰 일 필요는 없습니다. 여기에 작동하는 짧 버전입니다 :

SELECT ticket_id, destination, COUNT(*) AS num_times 
FROM table 
GROUP BY 1, 2 
HAVING COUNT(*) > 2 

만트라 : LESS == GOOD

+0

만트라 : 위치 필드 참조를 방지하고 내가 20 년 동안이 일을했습니다 대신 ;-) – zerkms

+0

@zerkms 명시 적 필드 이름을 사용하려고 위치 참조를 사용하면 문제가 발생하지 않습니다. 주로 많은 수의 비 집계 열을 사용하는 것이 훨씬 쉬우 며 계산을 반복하지 않아도됩니다 (집계되지 않은 열을 계산하는 경우) – Bohemian

관련 문제