이번 글에서는 PARTITION BY에 대해서 알아보겠다.
그전에, 이것과 함께 항상 등장하는 OVER 절에 대해서도 알아보겠다.
샘플 데이터
1. OVER 절은 왜 사용하는가?
위와 같은 상황은
(CATEGORY : 단일 칼럼), (SUM(SCORE) : 집계 칼럼)을 함께 사용했기 때문에 발생하는 문제이다.
단일 칼럼은 집계 칼럼과 함께 사용될 수 없기 때문에, 이를 함께 쓰려면 서브 쿼리를 사용해야 한다.
하지만 서브쿼리 때문에 쿼리는 매우 지저분 해진다.
이를 깔끔하게 해결해 주는 것이 바로 over 절!
위와 같은 서브 쿼리를 over 을 사용하여 한방에 깔끔하게 할 수 있다.
그런데, 뭔가 이상하다. 합을 구하려면, category 별로 합을 구해야 어색하지 않은데,
위의 sum(score)over()은 전체 행의 합을 나타낸다.
그래서 over 절 안에 사용 할 수 있는 것이 바로 PARTITION BY
PARTITION BY 란?
OVER 절의 GROUP BY!
OVER(PARTITION BY(칼럼명)
이번 글에서는 over 과 partition by를 사용하여 우리가 원하는 결과를 깔끔하게 도출해 낼 수 있었다.
다들 화이팅!!!
'Specialist > SQL' 카테고리의 다른 글
[빅쿼리-SQL] 매출 데이터 분석 '한방 정리' 쿼리 (0) | 2022.05.09 |
---|---|
[빅쿼리 - SQL]OVER 절과 ORDER BY로 순서 정의하기(row_number,rank,dense_rank, lag,lead 함수 사용) (0) | 2022.05.01 |
[빅쿼리-SQL] 테이블 만들기! (create table) (1) | 2022.04.29 |
[빅쿼리 - SQL]를 사용하여 IP 데이터 다루기(cast,pow,concat,lpad 함수 사용) (1) | 2022.04.29 |
[빅쿼리 - SQL]를 사용하여 매출 데이터 다루기(case문,sign함수,coalesce,round함수) (0) | 2022.04.29 |
댓글