[SQL] 윈도우 함수와 group by 의 차이점

CHOI CHOI·2024년 1월 28일
0

Mysql

목록 보기
8/8

윈도우 함수란

윈도우함수
: 행과 행간의 관계를 쉽게 정의 하기 위해 만든 함수를 이름

윈도우 함수의 생김새

함수(col) over(partition by col1 order by dol2)

함수 : min / max / sum / count / rank 등과 같은 기존의 함수 or 윈도우 함수용으로 추가된 함수
over : over는 윈도우 함수에서 꼭 들어가야하며 over내부에 partition by 절과 order by절이 들어갑니다
partition by : 전체 집합을 어떤 기준(컬럼)에 따라 나눌지를 결정하는 부분
order by : 어떤 항목(컬럼)을 기준으로 순위를 정할지 결정하는 부분

group by 와의 차이점

윈도우 함수의 생김새를 살펴보면 partition by에 따라 나누어 집계한다는것을 알 수 있습니다.
그럼 group by와 어떤 차이가 있을까요?

group by
기능 : 자르기 + 집약
특징 : 1. group by구에 지정된 컬럼으로 데이터를 자르고
2. 집계 함수를 이용해 집약시킨다
차이점 : 행의 수가 줄어든다

윈도우 함수
기능 : 자르기
특징 : 1. partition by구에 지정된 컬럼으로 데이터를 자른다
차이점 : 행의 수가 그대로 유지된다

따라서 group by와 윈도우 함수의 가장 큰 차이는 '집약' 과정이 존재하는가? 이다

예시

  • group by
select address
	 , count(*)
from address
group by 1;

  • 윈도우 함수
select address
	, count(*) over(partition by address)
from address;

위 두가지 경우를 보면 차이점을 더 명확하게 알 수 있다
group by는 집약 기능으로 인해 행 수가 줄어드는 반면, 윈도우 함수는 행 수가 그대로 남아있다

profile
뭐가 됐든 데이터분석가

1개의 댓글

comment-user-thumbnail
2024년 10월 3일

감사합니다

답글 달기