반응형
SQL을 다루는 사람들이 반드시 알아야 할 개념 중에 하나가 바로 JOIN이다. Join은 아주 쉽게 얘기해서 집합의 개념과 매우 유사하다. Data Analyst, PO, PM 등 많은 직군의 사람들이 쓰기 시작해서, 반드시 알아야 할 기초와 코드를 정리해보고자 한다. 오늘 다루게 될 내용은 INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, 그리고 FULL OUTER JOIN이다.
1. JOIN의 모든 종류
- JOIN의 기초 문법 안내
- JOIN 원하는 테이블 AS 약칭 ON 기준1 = 기준2
- Tip1. 기준1과 기준2는 데이터 구조도 동일하게 하는 것을 권장한다.
- Tip2. Bigquery에서는 데이터 구조가 다르면 JOIN시 Error가 발생한다.
- Big Query 실습 데이터 안내
- 데이터는 동물들과 그 숫자로 나타낸 임시 테이블이다.
- 실습 환경은 Bigquery에 적재하여 진행하였다. 테이블 만드는 방법은 다른 포스팅에서 다루도록 하겠다. 방법은 매우 쉬우니 한 번 시도해보는 것을 권장한다.
- A와 B의 공유하는 Column은 animal이기에, 항상 JOIN KEY값으로 활용할 것이다.
- 핵심은 JOIN의 종류에 따라서 어떤 결과가 나오는지, 그리고 무슨 차이가 있는지 보여주는데 초점을 둔다.
![]() |
![]() |
2. INNER JOIN
- 기본 개념
- INNER JOIN은 교집합에 해당 하는 개념이다.
- 결과 설명
- A, B 각각 존재하는 동물 종류는 9가지였다.
- A와 B에 모두 동시에 존재하는 동물은 총 7 종류로 나왔다.
- 즉 7개의 교집합만을 산출해서 보여준 것이다.
- 실무 예시: 신발 제품과 의류 제품을 모두 구매한 고객들이 궁금하다면 사용 가능
3. LEFT OUTER JOIN
- 기본 개념
- FROM "Table"에 초점을 맞춘 Join이다.
- 결과 설명
- A에 해당하는 동물들은 모두 호출 되었다.
- B에서는 A와 동일한 종이 있는 경우에만 호출 되었다.
- B에서는 Elephant와 Mouse가 없는 것을 확인할 수 있었다.
- 실무 예시: 신발을 구매한 사람들 중 티셔츠를 동시에 산 사람들과 아닌 사람을 구분해서 보고 싶은 경우
반응형
4. RIGHT OUTER JOIN
- 기본 개념
- OUTER JOIN "Table"에 초점을 맞춘 Join이다.
- 결과 설명
- 이것은 LEFT OUTER JOIN 결과와 거의 동일한데, 그 방향성이 FROM에 있는지 혹은 JOIN에 있는지 차이다.
- 그 결과 이번에는 B는 모두 호출되었지만, A는 racoon과 zebra가 없기 때문에 결과가 나타나지 않았다.
- 그래서 보통 실무에서 이 함수의 사용 빈도는 낮은 편이지만, 그래도 알아두면 좋다.
5. FULL OUTER JOIN
- 기본 개념
- 모든 데이터 조회를 위한 합집합 개념이다.
- 결과 설명
- 이번에는 A와 B에 존재하는 모든 동물의 종이 조회가 되었다.
- 그래서 A에는 racoon과 zebra 빼고 모두 호출된 반면, B에서는 elephant와 mouse를 제외하고 모두 호출 되었다.
- 이 경우 모든 데이터를 조회할 수 있는 장점이 있는 대신, 데이터 처리 리소스 비용이 많이 드는 단점 또한 있으니 적절하게 사용해야 한다.
- 실무 예시: 신발과 패딩을 구매한 사용자들 패턴 중 모든 경우의 수를 불러와야 할 경우
여기까지 숙지를 해놓았다면, 실무에서 뿐만 아니라 SQL 코딩 테스트에서 출제될 수 있는 모든 JOIN의 종류를 알았다고 해도 과언이 아니다. 각자의 환경에서 반복 숙달할 수 있도록 연습하는 것을 권장한다.
반응형
'SQL - Mysql & Oracle > SQL 기본기 마스터' 카테고리의 다른 글
[빅쿼리] SQL에서 문자를 날짜 형태로 변환하는 법(parse_date 마스터) (0) | 2022.09.22 |
---|