분석함수란 테이블에 있는 로우의 특정 그룹별로 집계 값을 산출 할 때 사용하는 함수이다.
분석 함수에서 더 세분화하면 집계함수, 그룹함수, 윈도우 함수로 나눌 수 있다.
집계함수는 여러행 또는 테이블 전체 행으로부터 하나의 결과값을 반환하는 함수이다.GROUP BY 절을 이용하면 그룹별로 로우 수가 줄어들게 되는데, 이때 분석함수인 집계 함수를 사용하면 로우의 손실 없이도 그룹별 집계 값을 산출해 낼 수 있다. 그룹함수는 그룹별 소계 등의 중간 결과물을 얻고 싶을 때 사용하는 함수이며, WINDOW 함수는 데이터베이스를 사용한 온란인 분석용 함수인 OLAP함수이다.
분석함수 (매개변수) OVER
(PARTITION BY EXP1, EXP2, ...
ORDER BY EXP1, EXP2, ...
WINDOW 절)
저번 글에서 WINDOW함수에 대해 조금 다뤘었는데 분석 함수에서 사용하는 로우별 그룹을 WINDOW라 부르기 때문에 WINDOW함수라는 이름이 붙은 거였다! (WINDOW함수는 OVER절을 포함한다.)
AVG, SUM, MAX, MIN, COUNT, DENSE_RANK, CUM_DIST, PERCENT_RANK, FIRST, LAST, LAG, LEAD, ROW_NUMBER 같은 함수들
https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls?hl=ko#:~:text=%EB%B6%84%EC%84%9D%20%ED%95%A8%EC%88%98%EB%9D%BC%EA%B3%A0%EB%8F%84%20%EB%B6%80%EB%A5%B4%EB%8A%94%20%EC%9C%88%EB%8F%84%EC%9A%B0,%EC%9D%98%20%EA%B8%B0%EA%B0%84%EC%9D%84%20%EC%A0%95%EC%9D%98%ED%95%A9%EB%8B%88%EB%8B%A4.
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=thwjd2525&logNo=221474479982
https://autumn-irene.tistory.com/67