2 윈도우 함수
① 윈도우는 로우의 그룹으로, OVER 절에 정의하며 PARTITION BY와 ORDER BY 절이 이에 속합니다.
② 집계 쿼리에서도 GROUP BY 절로 로우의 그룹을 지정할 수 있지만 그룹화하는 칼럼 값에 따라 로우 수가 줄어듭니다. 하지만 윈도우를 사용하면 로우 수를 유지하면서도 집계 값을 계산할 수 있습니다.
③ OVER 절은 PARTITION BY와 ORDER BY 절로 구성되는데, PARTITION BY는 로우의 그룹인 파티션을 지정하고 ORDER BY 절은 로우의 순서를 지정합니다.
④ OVER 절과 함께 집계 함수나 윈도우 함수를 사용할 수 있습니다.
⑤ 윈도우 함수로는 ROW_NUMBER(), RANK(), DENSE_RANK(), PERCENT_RANK(), LAG(), LEAD(), NTILE(), FIRST_VALUE(), LAST_VALUE(), NTH_VALUE() 등이 있습니다.
⑥ 윈도우를 정의할 때 프레임 절을 추가해 하나의 파티션에 대한 하위 그룹을 추가로 지정할 수 있습니다.
⑦ 윈도우 함수인 FIRST_VALUE(), LAST_VALUE(), NTH_VALUE()는 프레임 절과 함께 사용할 수 있고, 나머지 윈도우 함수는 프레임 절과 관계없이 값을 반환합니다.
⑧ 윈도우의 별칭을 지정하면 집계 함수나 윈도우 함수의 OVER 절에서 별칭을 사용할 수 있습니다.
3 뷰
① 뷰는 테이블과 유사한 독립적인 데이터베이스 객체지만 실제 데이터를 저장하지 않습니다.
② 자주 사용되는 복잡한 쿼리를 뷰로 만들면 편리하게 사용할 수 있습니다.