SQLDSQL 활용윈도우 프레임난이도 4MCQ

SQLD 윈도우 프레임 기출문제 #3730

문제

다음 윈도우 함수의 결과로 가장 적절한 것은?

<데이터>

IDVAL
11
23
35
45
55
SQL
SELECT ID, VAL, COUNT(*) OVER( ORDER BY VAL, ID ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) AS CNT FROM T;

ID가 3이고 VAL이 5인 행의 CNT 값은?

① 1 ② 2 ③ 3 ④ 5

정답

3

해설

정답: 3. ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW는 첫 행부터 현재 물리적 행까지를 프레임으로 잡는다. ORDER BY VAL, ID 기준으로 정렬하면 ID 3 행은 세 번째 행이므로 프레임에는 ID 1, ID 2, ID 3 총 3개 행이 포함된다.

오답 풀이

  • 1번: 현재 행만 세는 프레임이 아니다.
  • 2번: 현재 행 이전의 두 행만 고려한 값이다.
  • 3번: 첫 행부터 현재 행까지 3개이므로 정답이다.
  • 4번: RANGE 기준으로 동순위까지 포함하는 경우와 혼동한 값이다.

보충 개념 ROWS는 물리적 행 단위로 프레임을 계산한다. 동점 정렬값이 있을 때 결과를 명확히 하려면 ORDER BY에 고유한 정렬 기준을 추가하는 것이 좋다.

SQLD 시험 준비 가이드

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[SQLD] 윈도우 프레임 SQL 활용 기출 #3730 | 문어CBT