본문 바로가기

데브코스/TIL

[TIL] 6주차_Day24: 데이터 웨어하우스와 SQL과 데이터분석 (4)

💡Today I Learned

  • 데이터 웨어하우스와 SQL, 데이터분석에 대한 네 번째 수업을 진행했습니다.
  • Join을 이용한 실습

 


 

1. JOIN

: 두 개 이상의 테이블들을 공통 필드로 merge, 합쳐진 새로운 레코드들이 만들어짐

1) INNER JOIN - 두 테이블의 교집합 레코드

2) FULL JOIN - 합집합 레코드

3) LEFT/RIGHT JOIN - JOIN 연산자 기준 왼/오 테이블은 모두 포함 (매칭되지 않는 필드는 null)

4) SELF JOIN - 자기 자신 테이블을 merge

5) CROSS JOIN - 가능한 모든 레코드 들의 조합

 

*) JOIN시 고려할 점

: 중복 레코드 x

: 기본키의 유일성이 보장됨 

 

2. BOOLEAN

- flag is True != flag is not False

: 플래그가 null값을 가질 수도 있음 (항상 같은 결과는 x..)

 

3. NULL

: IS / IS NOT 으로 비교 수행

: NULLIF(값1, 값2) - 값1과 값2가 같으면 NULL을 return, 다르면 값1을 return

: 사칙연산에 NULL이 포함되면 결과는 모두 NULL

 

- COALESCE(exp1, exp2, exp3, ...) : exp1부터 인자 하나씩 살펴서 NULL이 아닌 값이 나오면 그걸 리턴, 끝까지 갔는데도 모두 NULL이면 최종적으로 NULL을 리턴

 

4. 예약 키워드 or 공백

: " "로 감싸서 사용하기

 

5. 3일차 숙제 - CTAS

- CREATE TABLE AS 시 ORDER BY는 의미 x (테이블 정의해서 데이터베이스에 저장될 때 알아서 ordering 됨)

 

 


 

💡Furthermore

  • SQL day_4 숙제 (JOIN, ROW_NUMBER() 이용)
  • (SELECT 문 안에) ROW_NUMBER() OVER (PARTITION BY 필드1 ORDER BY 필드2) nn - 필드1로 파티션을 나누고, 필드2를 기준으로 정렬한 후 파티션 내에서 row(레코드) 번호를 붙임, 번호를 붙인 필드 이름은 'nn'
반응형