업무에 파이썬 활용할 줄 알기
조인문에 >= 조건을 사용하면 중복이 어떻게 발생할까? 본문
데이터리안 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 데이터 분석 캠프 실전반' 을 수강하며 작성한 내용입니다.
'SQL > [데이터리안] SQL실전반' 카테고리의 다른 글
조인문에 between을 사용했을 때 중복이 어떻게 발생하는가? (0) | 2024.01.22 |
---|---|
데이터리안 | 리텐션 (0) | 2024.01.10 |