WINDOW FUNCTION

JYJ·2022년 9월 3일
0

SQL / MySQL

목록 보기
25/25

WINDOW FUNCTION

  • Analytic SQL, Analytic Function이라고도 한다.

  • group by만 쓰게되면 집합의 레벨도 바뀌고, 쓸 수 있는 값의 범위도 좁아지고, 여러번 join해야하는 여러가지 불편한점이 많았다.

  • 하지만 window function을 쓰게되면 원본 데이터의 집합 레벨을 그대로 유지하면서 여러가지 함수 적용이 가능하다.

  • 내부적으로 window(창모양)의 프레임을 조절해가며 row단위의 집합 연산을 수행한다.


  • 집계(aggregate)계열 analytic 함수는 order by절이 있을 경우 window절은 기본적으로 range unbounded preceding and current row이다.

  • 만약 order by절이 없다면 window는 해당 partition의 모든 row를 대상으로 한다.

  • 만약 partition절도 없다면 window는 전체 데이터의 row를 대상으로 한다.






적용할함수(적용컬럼) OVER(PARTITION BY 그룹열 ORDER BY 순서열)


✔ 전체국가 합계와 국가별 profit의 합 구하기

SELECT
	year, country, product, profit,
    SUM(profit) OVER() AS total_profit,
    SUM(profit) OVER(PARTITION BY country) AS country_profit
FROM sales
ORDER BY country, year, product, profit;


profile
Study note

0개의 댓글