정보처리기사 실기SQLSQL - 윈도우 함수난이도 5SHORT_ANSWER

정보처리기사 실기 SQL - 윈도우 함수 기출문제 #294

문제

다음 [성적] 테이블에서 SQL문을 실행했을 때, 이름이 '박'인 행의 moving_avg 값을 쓰시오. (소수점 첫째자리까지)

이름과목점수
수학80
수학90
수학70
영어85
영어75
SQL
SELECT 이름, AVG(점수) OVER (PARTITION BY 과목 ORDER BY 점수 ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS moving_avg FROM 성적;

정답

70.0

70.070

해설

  1. PARTITION BY 과목으로 수학과 영어로 분할됩니다.
  2. ORDER BY 점수로 각 파티션 내에서 점수 오름차순 정렬합니다.
  3. 수학 파티션에서 정렬 순서: 박(70), 김(80), 이(90)
  4. ROWS BETWEEN 1 PRECEDING AND CURRENT ROW는 현재 행과 바로 이전 행을 포함한 범위를 의미합니다.
  5. 박(70)은 수학 파티션에서 첫 번째 행이므로 이전 행이 없습니다.
  6. 따라서 현재 행(박, 70점)만으로 평균을 계산: 70/1 = 70.0

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

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