Data Engineering

Data Engineering을 위한 고급 SQL

Window 함수, 재귀 CTE, 분석 쿼리, 최적화, EXPLAIN ANALYZE, 인덱싱, 파티셔닝

20 면접 질문·
Mid-Level
1

파티션 내 각 행에 고유한 순차 번호를 할당하는 window 함수는 무엇입니까?

답변

ROW_NUMBER()는 파티션 내 각 행에 1부터 시작하는 고유한 순차 번호를 할당합니다. 동일한 값에 같은 번호를 할당할 수 있는 RANK()와 DENSE_RANK()와 달리, ROW_NUMBER()는 ORDER BY 절에서 값이 동일하더라도 항상 고유한 번호를 보장합니다.

2

RANK()와 DENSE_RANK()의 주요 차이점은 무엇입니까?

답변

RANK()는 동점 값 이후의 번호 매기기에 간격을 남깁니다. 예를 들어, 두 행이 1위로 매겨지면 다음 행은 3위가 됩니다. DENSE_RANK()는 간격을 남기지 않습니다: 두 행이 1위로 매겨진 후 다음 행은 2위가 됩니다. 이 구분은 간격이 통계를 왜곡할 수 있는 순위 분석에서 중요합니다.

3

window 함수로 누적 합계(running total)를 계산하는 방법은?

답변

명시적인 프레임 없이 ORDER BY를 사용하는 SUM() OVER는 기본적으로 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW를 사용하여 현재 행을 포함한 모든 이전 행의 합계를 계산합니다. 이는 시계열 또는 순차 분석에서 누적 합계를 생성하는 표준 동작입니다.

4

window 함수에서 PARTITION BY 절의 역할은 무엇입니까?

5

window 함수에서 이전 행의 값에 접근할 수 있는 함수는 무엇입니까?

+17 면접 질문

다음 면접을 위해 Data Engineering을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기