Study/SQL

[SQL로 맛보는 데이터 전처리 분석] SQL 문법 (2)

seongju 2024. 1. 8. 14:35

'SQL로 맛보는 데이터 전처리 분석'으로 공부한 내용을 정리하였다.

 

 

# JOIN

여러 가지 테이블로 나뉜 정보를 조합하기 위해 사용하는 테이블 결합 함수

 

 

1) LEFT JOIN (LEFT OUTER JOIN)

LEFT JOIN은 FROM 절의 테이블을 기준으로 매칭되는 정보 출력

 

ex) order 테이블의 정보는 모두 출력되고, cutsomers 테이블의 고객 ID 중 order에 존재하는 고객 ID 정보만 결합

SELECT *
FROM order LEFT JOIN customers
ON order.고객 ID = customers.고객 ID

 

 

2) INNER JOIN

INNER JOIN은 두 가지 테이블에 공통으로 존재하는 정보만 출력

ex) order 테이블과 customers 테이블에 공통으로 존재하는 고객 id 정보 출력

SELECT *
FROM order INNER JOIN customers
ON order.고객 ID = customers.고객 ID

 

 

3) FULL JOIN

FULL JOIN은 TABLE_A 또는 TABLE_B와 매칭되는 레코드 모두 출력

ex) order 테이블과 customers 테이블의 모든 정보 출력

SELECT *
FROM order FULL JOIN customers
ON order.고객 ID = customers.고객 ID

 

 

# CASE WHEN

CASE WHEN 구문은 조건에 따라 값을 다르게 출력하고 싶은 경우 사용

ex) 조건 1을 만족하는 경우 -> 결과 1 출력

       조건 2를 만족하는 경우 -> 결과 2 출력

       두 조건 모두 만족하지 않는 경우 -> 결과 3 출력

SELECT CASE WHEN 조건 1 THEN 결과 1
WHEN 조건 2 THEN 결과 2 ELSE 결과 3 END
FROM DB 명.테이블 명;

 

 

# RANK 함수

데이터에 순위를 매기는 데 사용되는 함수

- RANK() : 동점인 경우 같은 등수로 계산, 데이터 세트 고려해 다음 등수 매김

- DENSE_RANK() : 동점인 경우 같은 등수로 계산, 바로 다음 수로 순위 매김

- ROW_NUMBER(): 동점인 경우 서로 다른 등수로 계산

 

ex) 구매 금액으로 순위 매기기

SELECT *, 
RANK() OVER(ORDER BY 구매 금액) AS RANK,
ROW_NUMBER() OVER(ORDER BY 구매 금액) AS ROW_NUMBER,
DENSE_RANK() OVER(ORDER BY 구매 금액) AS DENSE_RANK
FROM TABLE;
고객 번호 구매 금액 RANK ROW_NUMBER DENSE_RANK
A 1000 1 1 1
B 400 2 2 2
C 200 4 4 3
D 400 2 3 2

 

 

 

출처 : SQL로 맛보는 데이터 전처리 분석

 
SQL로 맛보는 데이터 전처리 분석
데이터 분석을 하기 위해서는 데이터베이스에 존재하는 데이터를 직접 추출할 수 있어야 한다. SQL은 우리가 데이터베이스에 접근하여 필요한 데이터를 조회하고 조작할 수 있도록 해주는 언어이다. 즉 SQL은 사람이 데이터베이스와 소통할 수 있게 해주는 도구이자 데이터 분석의 시작점이라고 볼 수 있다. 이 책은 현업에서 서비스 분석에 자주 사용되는 KPI 지표들을 직접 추출하며 SQL을 익힐 수 있도록 구성되어 있다. 기존의 간단한 문법 수준을 다루는 SQL 저서와는 자동차 매출, 상품 리뷰, 식품 배송 데이터 등 실무에 가까운 자료를 분석하는 예제들을 포함하고 있어 SQL을 학습하는 데 보다 도움이 될 것이다.
저자
노수영
출판
비제이퍼블릭
출판일
2020.01.31

 

 

'Study > SQL' 카테고리의 다른 글

[SQL로 맛보는 데이터 전처리 분석] SQL 문법 (1)  (1) 2024.01.04