Programming/Oracle

[Oracle] 중복 제거 (DISTINCT)

Isaac S. Lee 2023. 8. 28. 15:34

💡DISTINCT


SELECT문에서 중복값을 제거할 때 distinct 키워드를 사용한다.

distinct는 컬럼 리스트에 함께 작성하며, 'distinct 컬럼명'의 형태로 작성한다.

 

 

[Java] 스트림: 파이프 (Pipe)

💡스트림 스트림은 데이터 소스로부터 데이터를 탐색하고 조작하는 도구로, 컬렉션과 배열 등의 데이터를 더 쉽고 효율적으로 다룰 수 있게 도와준다. 스트림을 사용하면 컬렉션 또는 배열의

isaac-christian.tistory.com

과거에 자바에서 스트림의 distinct() 메소드를 다룬 적이 있다.

복습 차원에서 읽어보도록 하자.

 

컬럼이 1개인 경우

SELECT CONTINENT FROM TBLCOUNTRY;

 

중복값 제거

SELECT DISTINCT CONTINENT FROM TBLCOUNTRY;

중복값을 제거하지 않으면 같은 데이터를 여러 번 출력하여 정확히 어떤 데이터로 구성되어 있는지 의미를 알기 쉽지 않다.

중복값을 제거한 결과 데이터에서 대륙에 어떤 데이터가 저장되어 있는지 알 수 있다.

 

SELECT DISTINCT BUSEO FROM TBLINSA;

 

SELECT DISTINCT JIKWI FROM TBLINSA;

 

컬럼이 2개 이상인 경우

SELECT
    DISTINCT BUSEO, NAME
FROM TBLINSA;

클래스에서 인스턴스를 정의하는 행위가 테이블에서는 컬럼을 정의하는 행동이다. 이러한 정의로 실체화된 하나의 오브젝트가 만들어지는데, 위 오브젝트에서 데이터 단위는 부서와 이름인 셈이다.

따라서 부서와 이름이 한 몸이기 때문에 부서에서 중복이 발생하고 있지만 중복 제거를 할 수 없는 것이다.

이 데이터에서 중복 제거가 되는 경우는 행의 데이터가 전부 동일한 경우, 즉 '부서'와 '이름'이 동일한 경우 뿐이다.

 

distinct는 특정 컬럼에 붙은 게 아니라 컬럼 리스트 앞에 붙은 것이라는 사실을 기억하도록 하자!

데이터베이스 모델링이라는 추상적인 파트가 있는데, 해당 파트에서는 이를 인스턴스(엔티티)라고 부른다.