본문 바로가기
Specialist/SQL

[빅쿼리 - SQL] OVER 절과 PARTITION BY

by 홍원 2022. 4. 29.

이번 글에서는 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(칼럼명)

partition by의 결과

 

이번 글에서는 over 과 partition by를 사용하여 우리가 원하는 결과를 깔끔하게 도출해 낼 수 있었다.

다들 화이팅!!!

 

 

 

 

 

 

 

댓글