업무에 파이썬 활용할 줄 알기
조인문에 between을 사용했을 때 중복이 어떻게 발생하는가? 본문
데이터리안 SQL 실전반 Week2 수업 중
조인문을 아래와 같이 일반적인 방식이 아닌
table1 t1 left join table2 t2 on t1.date=t2.date
between 조건을 사용하는 조인문을 알게 되었다
from table t1 left join table t2 on t2.date between date_sub(t1.date, interval 6 day) and t1.date
쉽게 전달하자면
2020-11-01 데이터에 2020-10-26~2020-11-01 (이전 7일치)의 데이터를 붙여주기 위한 조인문이다.
문제 의식
이런 조인문을 썼을 때, left data인 2020-11-01데이터에 어마어마한 중복이 생길 것 같았다
2020-11-01 데이터에 2020-10-26~2020-11-01 데이터가 조인되는 것이니
단순 left data와 right data에 요일컬럼만 있었다고 생각해보면
left data의 2020-11-01 한개가 7개가 되는 것이다
그런데 문제는 실데이터에는 다른 컬럼 정보와 함께 2020-11-01만 해도 수십개가되는데,
이 수십개가 7일치 데이터만큼 뻥튀기가 되는것일지? 궁금했다
확인 결과
2020-11-01의 3개의 데이터가 join되는 21개만큼 곱해져서 데이터가 중복으로 더 생기는게 맞았다.
(2020-11-01의 3개) * (2020-10-26~2020-11-01의 21개) = 63개
☞ 본 내용은 데이터리안 'SQL 데이터 분석 캠프 실전반' 을 수강하며 작성한 내용입니다.
'SQL > [데이터리안] SQL실전반' 카테고리의 다른 글
조인문에 >= 조건을 사용하면 중복이 어떻게 발생할까? (1) | 2024.01.23 |
---|---|
데이터리안 | 리텐션 (0) | 2024.01.10 |