SJ_Koding

SQLD 대비 (12) - 윈도우함수, 옵티마이저 본문

SQL/SQLD

SQLD 대비 (12) - 윈도우함수, 옵티마이저

성지코딩 2023. 11. 18. 00:19
 

SQLD 대비 (11) - 계층형 SQL, 집계함수

SQLD 대비 (10) - 서브쿼리(Sub Query), 비등가 조인, 집합연산자 SQLD 대비 (9) - JOIN SELECT * FROM Employees CROSS JOIN Departments; SELECT * FROM Employees, Departments;​ SQLD 대비 (8) - SQL 문법 및 라이브러리_3 SQLD 대비 (7)

sjkoding.tistory.com

이전 글과 이어지는 글입니다. 해당 정리글은 아래의 유튜브 영상을 참고하여 만들었습니다. 문제 시 삭제하겠습니다.
빨간색 형광펜은 강의에서 강조한 부분, 노란색 형광펜은 추가 서치로 내용을 '직접' 보강한 부분입니다.

윈도우 함수

  • 데이터를 분석하거나 통계적인 계산을 하는 함수로 주로 사용된다.
  • 함수 자체를 중첩하여 사용할 수 없다.
  • 복잡하게 구해야 하는 로직을 쉽게 처리 할 수 있게 한다.
순서, 순위 RANK(1, 2, 2, 4, 5...) , DENSE_RANK(1, 2, 2, 3, 4,...), ROW_NUMBER(순위가 아님)
집계, 계산 SUM, AVG, COUNT, MAX, MIN
ROWS, 위치 FIRST_VALUE, LAST_VALUE, LAG, LEAD
백분율, 비율 CUME_DIST, RATIO_TO_REPORT, PERCENT_RANK, NTILE(N개의 구간으로 나눔)
SELECT CLASS_NUM, STUDENT_NO, SCORE,
	ROW_NUMBER() OVER (PARTITION BY class_num ORDER BY score) AS class_row
    -- ROW_NUMBER : 동점 상관없이 무조건 1, 2, 3, 4, 5
    , DENSE_RANK() OVER (PARTITION BY class_num ORDER BY score) AS class_dense_rank
	-- DENSE_RANK : DENSE:밀집된, 즉 동점자 있을 경우 1, 1, 2, 3, 4, ..
    , RANK() OVER (PARTITION BY class_num ORDER BY score) AS class_rank
    -- RANK: 동점자가 있을 경우 1, 1, 3, 4, 5, ..

	FROM exam_result

FIRST VALUE

  •    각 절 기준값에 따른 다른 컬럼의 값을 출력

PERCENT_RANK

  • 기준 파티션 내 순서 명 백분율을 계산하라 0 ~ 1사이의 값으로 출력

NTILE (1구간, 2구간 ,…, n구간)

 

작성중.. 이어서..