업무에 파이썬 활용할 줄 알기

조인문에 >= 조건을 사용하면 중복이 어떻게 발생할까? 본문

SQL/[데이터리안] SQL실전반

조인문에 >= 조건을 사용하면 중복이 어떻게 발생할까?

SEO 데이터분석가 2024. 1. 23. 15:58

데이터리안 SQL 실전반 Week3 수업 중 이번엔 조인문에 >= 부등호 기호를 사용하는 조건을 만났다.

from left l
left join right r on l.user_pseudo_id=r.user_pseudo_id
                 and l.ga_session_id=r.ga_session_id
                 and l.pv_at <= r.scroll_at

 

엑셀이나 태블로 Prep으로 두 테이블을 합칠 때는

보통 vlookup처럼 동일한 조건의 컬럼을 기준으로 테이블을 합치는 작업을 했었는데,

저번 시간도 그렇고 이번 시간도 그렇고 컬럼간 동일 조건이 아니라

범위 조건으로 합칠 수 있다는게 아직까지는 많이 어색하다.

 

익숙해지면 자연스럽게 내 머릿속에서 이 방법이 떠올라지겠지..!

 

문제 의식

아무튼 내가 궁금한 건 >= 조건으로 조인문을 작성하면 left table과 right table의 데이터 중복이 어떻게 발생하게 될까?

pv_at보다 크거나 같은 시간의 행은 다 붙는식으로 조인이 되는걸까?

from left l
left join right r on l.user_pseudo_id=r.user_pseudo_id
                 and l.ga_session_id=r.ga_session_id
                 and l.pv_at <= r.scroll_at

 

확인 결과

left table, right table 모두에 중복데이터가 발생하게 된다.

 

left table.data <= right table.data 조건 때문에

left table은 기준 숫자보다 큰 right table의 행들이 조인되면서 right table의 행숫자만큼 중복 데이터가 더 생긴다.

right table은 right table.data보다 작거나 같은 left table.data행에 모두 조인되기 때문에 그만큼 중복 데이터가 더 생긴다.

 

CASE1

 

 

CASE2

 

 

 

☞ 본 내용은 데이터리안 'SQL 데이터 분석 캠프 실전반' 을 수강하며 작성한 내용입니다.