Salangdung_i의 기록
SQL DISTINCT 응용 본문
DB에서 데이터를 조회 할 때 중복을 제거하기 위해 DISTINCT를 많이 사용한다. 중복제거로 쓰이는 DISTINCT는 이미 많이들 알고 있으니, 다른방법으로 DISTINCT 를 사용해보도록 하자.
업무를 하다, 각기 다른 SQL문을 리스트형태로 붙여서 가져와야 했던 적이있었다.
그때 사용했던 방법이다.
DISTINCT 구문
SELECT DISTINCT column1, column2, ... FROM table_name; |
SQL SELECT DISTINCT 문
SELECT DISTINCT 문은 구별되는 (다른) 값만 리턴하는 데 사용됩니다.
테이블 내에서 열에는 종종 많은 중복 값이 포함됩니다. 때로는 다른 (고유 한) 값만 나열하려고합니다.
먼저 salangdung.tistory.com/44 를 참고하여 TABLE생성, DATA삽입을 진행하자.
SELECT * FROM TB_MEMBER; 를 조회해서 아래와 같이 출력되면 다음을 진행하도록 하자.
내가 출력하고싶은 값은
컬럼 별칭을 DATA1, DATA2, DATA3 이며 USER_ID컬럼의 1번 부터 3번까지를 리스트 형태로 조회하고자 한다.
먼저 조회 할 각각의 SQL을 만든다.
SELECT USER_ID FROM TB_MEMBER WHERE USER_NAME = '사랑둥이';
SELECT USER_ID FROM TB_MEMBER WHERE USER_NAME = '사용자1';
SELECT USER_ID FROM TB_MEMBER WHERE USER_NAME = '사용자2'
자 이제 이 쿼리들을 어떻게 List 형태로 출력 할 수 있나 보자.
SELECT DISTINCT
(
SELECT USER_ID FROM TB_MEMBER
WHERE USER_NAME = '사랑둥이'
) AS DATA1,
(
SELECT USER_ID FROM TB_MEMBER
WHERE USER_NAME = '사용자1'
) AS DATA2,
(
SELECT USER_ID FROM TB_MEMBER
WHERE USER_NAME = '사용자2'
) AS DATA3
FROM TB_MEMBER;
위의 SQL 을 실행하면,
다음과 같은 결과를 도출 할 수 있다.
DISTINCT문 이외 UNION ALL으로도 리스트 형태로 값을 출력할수 있는 방법이 있는데,,, 그건 다음에 작성하도록 하겠습니다. UNION ALL 로 LIST 형태 출력이 되지 않아서 DISTINCT문을 썼었는데 그 안됬던 상황이 기억나질않는다....
참고 : https://www.w3schools.com/sql/sql_distinct.asp
"Icon made by Pixel perfect from www.flaticon.com"
'BACKEND > SQL' 카테고리의 다른 글
SQL TABLE CREATE (0) | 2020.06.27 |
---|