글 작성자: nouu

https://www.inflearn.com/course/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%EA%B3%A0%EA%B8%89-sql

 

[백문이불여일타] 데이터 분석을 위한 고급 SQL - 인프런 | 강의

인프런 누적 수강생 9000명 이상, 풍부한 온/오프라인 강의 경험을 가진 데이터리안의 SQL 고급 강의. SQL 고급 이론을 배우고, 실습 문제를 함께 풀어봅니다., - 강의 소개 | 인프런...

www.inflearn.com

 

데이터 리안 강의 중 윈도우 함수에 대한 개념과 자주 사용하는 함수들을 익혔다. 현업에서 구체적으로 사용하는 방법은 모르겠지만 정말 GROUP BY만 알던 나에게 확장 된 개념을 알 수 있어서 좋았다.

 

윈도우 함수에 대해 간략하게 요약하자면 어떠한 컬럼의 그룹핑을 한 결과를 나타내는 함수이다. 그룹핑을 하는건 GROUP BY도 있는데 왜 굳이 윈도우 함수를 쓰는 의문점이 들 것이다. GROUP BY와 다른 점이 뭐냐면 GROUP BY는 기존의 테이블 열을 붕괴하는 collapse한 형태를 띄어서 GROUP에 속한 컬럼의 컬럼값에 따라 어떠한 집계함수의 결과가 나온다. 반면 윈도우 함수는 do not collapse groups of query rows to a single output row. 즉, 기존의 테이블의 로우 형태를 유지하면서 새로이 컬럼을 만들어 추가할 수 있다. 예시는 위의 링크를 들어가서 결제하고 수강하면 된다. ㅎㅎ

 

윈도우 함수의 구조는 다음과 같다. 

함수(함수에 적용하고 싶은 컬럼) OVER ( [PARTITION BY 컬럼] [ORDER BY 컬럼] ) (PARTITION BY 컬럼, ORDER BY 컬럼을 같이 쓸 때도 있고 하나만 쓸 떄도 있다.)

 

윈도우 함수를 쓰는 다양한 사례가 있지만 대표적으로 어떠한 값의 누적합을 구하는 것과 순위를 정하는 것을 많이 쓴다고 한다. 이는 위와 같은 문제를 바탕으로 실습을 진행할 수 있는데 윈도우 함수에 더 적응을 하려면 해당 문제를 몇 번씩 반복해서 풀어야 될 것 같다.