두배로

시험 안내 › SQLD › 필기 개념서

10장. 그룹 함수·윈도우 함수·Top N

SQLD (SQL 개발자) 필기 개념서 · 2과목. SQL 기본과 활용 · 절 7개

앱에서 전체 내용 보기

이 장에서 배우는 것

10-1. ROLLUP · CUBE · GROUPING SETS · GROUPING

ROLLUP은 인수 순서가 바뀌면 결과가 달라진다(CUBE·GROUPING SETS는 순서와 무관). 소계 행에서 집계된 칼럼은 NULL로 표시된다. GROUPING(칼럼)은 그 칼럼이 소계로 집계된 행이면 1, 아니면 0이다.

10-2. 윈도우 함수의 구조와 윈도우 범위(ROWS vs RANGE)

형식: 윈도우함수(인수) OVER ([PARTITION BY 칼럼] [ORDER BY 칼럼] [ROWS|RANGE BETWEEN 시작 AND 끝]) — 시작·끝은 UNBOUNDED PRECEDING, n PRECEDING…

10-3. 순위 함수 — RANK · DENSE_RANK · ROW_NUMBER

PARTITION BY DEPTNO를 넣으면 부서마다 1부터 다시 매긴다: 20번 부서 이부장 1 · 최과장 2 · 정대리 3 · 윤사원 4.

10-4. 집계 윈도우 함수 — SUM · AVG · COUNT · MAX · MIN OVER

다루는 항목: ROWS 1 PRECEDING ~ 1 FOLLOWING (EMPNO 101~108 순), RANGE 500 PRECEDING ~ 500 FOLLOWING (SAL 1000, 1200, 1500, 2000, 2000…

10-5. 행 순서 함수 — FIRST_VALUE · LAST_VALUE · LAG · LEAD

20번 부서(4명) 대상. LAST_VALUE는 기본 범위의 끝이 CURRENT ROW라 자기 자신(RANGE이므로 ORDER BY 값이 같은 동점 행이 있으면 그 동점 중 마지막 행)을 돌려주므로, 파티션의 마지막 값을 원하면…

10-6. 비율 함수 — RATIO_TO_REPORT · PERCENT_RANK · CUME_DIST · NTILE

(SQLite 검증: RATIO_TO_REPORT는 SAL / SUM(SAL) OVER ()로 바꿔 실행.) 전체 8행에 NTILE(3)을 쓰면 3 + 3 + 2로 나뉘고, 전체 기준 CUME_DIST는 급여 2000 두 행이 모두…

10-7. Top N 쿼리 — ROWNUM · TOP · FETCH FIRST · ROW_NUMBER

ROWNUM(Oracle 의사 칼럼)은 행을 읽어 WHERE 조건을 통과할 때마다 1, 2, 3…을 붙인다. ORDER BY보다 먼저 부여되므로 정렬 후 상위 N개를 원하면 인라인 뷰에서 먼저 정렬해야 한다. (행이 EMPNO…

그림·예제·문제와 함께 이어 보기