학습용 기출·복원자료 분류 확인SQLD · 2023년 51회 SQL 기본 및 활용 · 12번
같은 날짜의 두 행이 동일한 누적합을 가져야 할 때 부적절한 윈도 프레임은?
1
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
정답 근거ROWS는 물리적 행 위치를 기준으로 하므로 같은 날짜의 첫 행과 둘째 행에서 누적 범위가 달라질 수 있다. RANGE 기본 프레임은 같은 정렬값의 동료 행을 함께 포함해 두 행에 같은 누적합을 준다. 따라서 1번 보기 ‘ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW’의 적용 여부를 문제 조건과 대조해야 한다.
2
SUM(N1) OVER(ORDER BY V1)
오답 이유Oracle의 기본 RANGE 프레임에서는 같은 V1 값의 행이 함께 누적된다. 따라서 2번 보기 ‘SUM(N1) OVER(ORDER BY V1)’의 적용 여부를 문제 조건과 대조해야 한다.
3
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
오답 이유정렬값 기준으로 현재 값까지 포함해 같은 날짜 행의 결과가 같다. 따라서 3번 보기 ‘RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW’의 적용 여부를 문제 조건과 대조해야 한다.
4
날짜 이하인 행을 상관 서브쿼리로 합산한다.
오답 이유현재 날짜 이하 조건으로 합산하면 같은 날짜 두 행이 동일 범위를 사용한다. 따라서 4번 보기 ‘날짜 이하인 행을 상관 서브쿼리로 합산한다.’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 1번
핵심 판단은 1번 ‘ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW’입니다. ROWS는 물리적 행 위치를 기준으로 하므로 같은 날짜의 첫 행과 둘째 행에서 누적 범위가 달라질 수 있다. RANGE 기본 프레임은 같은 정렬값의 동료 행을 함께 포함해 두 행에 같은 누적합을 준다.