학습용 기출·복원자료 분류 확인SQLD · 2024년 54회 SQL 기본 및 활용 · 32번
상품 분류별 누적 합계를 계산할 때 현재 행을 기준으로 앞뒤 10,000 범위를 포함하는 프레임은?
1
ROWS BETWEEN 10000 PRECEDING AND CURRENT ROW
오답 이유ROWS는 정렬값 10,000의 범위가 아니라 물리적으로 앞선 10,000개 행을 뜻하고 뒤쪽도 포함하지 않는다. 따라서 1번 보기 ‘ROWS BETWEEN 10000 PRECEDING AND CURRENT ROW’의 적용 여부를 문제 조건과 대조해야 한다.
2
RANGE BETWEEN 10000 PRECEDING AND 10000 FOLLOWING
정답 근거RANGE 프레임은 정렬값을 기준으로 범위를 정한다. 앞뒤 10,000을 모두 포함하려면 PRECEDING과 FOLLOWING을 함께 사용해야 한다. 따라서 2번 보기 ‘RANGE BETWEEN 10000 PRECEDING AND 10000 FOLLOWING’의 적용 여부를 문제 조건과 대조해야 한다.
3
RANGE BETWEEN CURRENT ROW AND 10000 FOLLOWING
오답 이유현재 행부터 뒤 10,000까지만 포함하므로 앞 10,000 범위가 빠진다. 따라서 3번 보기 ‘RANGE BETWEEN CURRENT ROW AND 10000 FOLLOWING’의 적용 여부를 문제 조건과 대조해야 한다.
4
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
오답 이유모든 앞뒤 행을 포함하는 무제한 ROWS 프레임은 정렬값 기준 ±10,000 범위와 다르다. 따라서 4번 보기 ‘ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 2번
핵심 판단은 2번 ‘RANGE BETWEEN 10000 PRECEDING AND 10000 FOLLOWING’입니다. RANGE 프레임은 정렬값을 기준으로 범위를 정한다. 앞뒤 10,000을 모두 포함하려면 PRECEDING과 FOLLOWING을 함께 사용해야 한다.