IT_SQL

[분석 실전] SQL JOIN 주의사항. duplication, 중복 키!

soyounism 2021. 11. 6. 16:23

안녕하세요.

이번 포스팅에서는, JOIN에서 주의할 구문들을 준비했습니다.

실무 데이터 분석을 하신다면 꼼꼼히 봐주세요

 

 

join의 주의사항

 

1. 행 중복 사례

조인 키에 특정테이블에 중복값이 있으면, 조인 결과 중복이 발생합니다

(따로 오류로 뜨지 x.) SQL오류창에서 알려주지 않으니 꼭 주의!

테이블의 듀플리케이션(duplication) (;듑이라고 보통 말합니다)

key가 유니크한지 꼭 확인해야합니다

 

직접 보여드릴게요

ex>

테이블1

 

테이블2

위 테이블1, 2의 join결과는?

중복되는 key 33이 두번 나옵니다. 꼭 유의해야합니다

 

* 참고로, key칼럼이 두번나왔죠.

중복되는 칼럼과 테이블은 조건절에 명시하거나, <테이블명.컬럼명>으로 명시해줍니다 

select id, "name" , d."key" , test
from dup d 
join test_dup td on d."key" =td."key"

 

2. on절

 

select

from table1

join table2 on table1.key=table2.key

 

꼭 on 절에 테이블.키=테이블.키 와 같은 문법이 와야합니다

 

=이 없다면?

boolean 오류가 나게됩니다.

boolean 오류가 난다면 =이 빠져있는지 확인해보세요

 

 

3. 조인키가 한개 이상인 경우

 

ex>쇼핑몰 데이터라고 생각해 보겠습니다

오더t1: 날짜/아이템/판매량

매출원가t2: 날짜/아이템/매출원가

 

위와같은 데이터일 경우, 아이템을 키로 조인을 하게 된다면

엄청난 듀플리케이션이 일어나게됩니다

예를들어, 매출원가의 경우 날짜별로 많이 달라지겠죠 ex>00세일데이, 00특가판매 등

같은 아이템도 매출원가가 날짜별로 달라질 수 있습니다

 

이 경우 아이템 칼럼으로 조인해버리면,

엄청난 듀플리케이션이 일어나게됩니다

 

so, 날짜, 아이템 둘다 조인해야할 경우가 생길텐데요

 

select t1.칼럼, t2.칼럼~~

(select * 이렇게 넣어버리면 날짜, 아이템 둘다 중복으로 2개씩 나오게 되겠죠)

from t1

join t2 on t1.날짜=t2.날짜 and t1.아이템=t2.아이템

 

위와같이 설정해야합니다

 

 

오류가 난다면, 당황하지 마시고,

아래에 오류표시를 읽어보세요. sql문법은 고치는게 절반입니다

모두모두 데이터분석 화이팅!!

 


SQL쿼리는 굉장히 직관적이라, 몇번 따라해보면 크게 어렵게 생각하실 필요가 없어요.

 

이제 남은 몇가지 중요한 파트들도 열심히 진행해볼게요

실무에서 데이터분석하기! 빠르게 진행해볼게요~

 

데이터 분석 실무 초고속 정복하기!

더 좋은 꿀팁들을 알고 계시면 공유해주세요!^^