table1 테이블에서 column1 컬럼의 중복을 제외한 결과를 SELECT 할 경우는 단순히 DISTINCT만 사용하면 된다.


SELECT DISTINCT column1 FROM table1 WHERE ...조건들... ORDER BY column1



위의 경우는 SELECT 시 컬럼이 두 개 이상이면 각각의 컬럼을 모두 중복체크한 결과가 출력된다.


특정 컬럼의 중복만 제외시키고 나머지 컬럼들은 그대로 불러와야 할 경우는 

중복되는 레코드를 그룹화하고 중복데이터중 정렬된 첫레코드만 조건절에 걸어서 뽑아오게 할 수 있다.

즉, column1, column2, column3, ... 이 중에서 column1만 중복을 체크해서 제거 할 경우에는 ROWID를 사용하면 된다.


SELECT column1, column2, column3, ... FROM table1 

WHERE ...조건들... AND ROWID IN (SELECT MAX(ROWID) FROM table1 GROUP BY column1)



위의 경우에서 MAX()를 사용하면 중복데이터 중 역정렬된 첫 레코드를 가져오게 되고 MIN()을 사용하면 순정렬된 첫 레코드를 가져오게 된다.


+ Recent posts