세 ranking 함수
파티션 안에서 숫자 할당하는 세 window 함수. 동점 처리 차이:
- ROW_NUMBER() — 유일 순차, 동점 없음 (1, 2, 3, 4).
- RANK() — 동점이 같은 rank 공유, 그 다음 skip (1, 2, 2, 4).
- DENSE_RANK() — 동점이 같은 rank, skip 없음 (1, 2, 2, 3).
Top-N per group
고전 응용: "고객당 가장 최근 3 주문 보여줘". ROW_NUMBER 있는 subquery + WHERE rn <= 3. 이 단일 패턴이 평생 만들 거의 모든 대시보드에 등장.
Readable layered 쿼리 위한 CTE
CTE (Common Table Expression, WITH 절) 가 쿼리 상단에 정의된 named subquery. 깊이 중첩된 쿼리를 named, readable step 으로. 다중 CTE 체인 가능. Recursive CTE 가 트리 traverse.