SQLDSQL 활용윈도우 함수난이도 2MCQ

SQLD 윈도우 함수 기출문제 #245

문제

다음 데이터에서 각 직원의 급여와 직전/직후 직원 급여의 평균을 구할 때, FIRST_VALUE와 LAST_VALUE 결과는?

SAL 순서: 1000, 2000, 3000, 4000 급여 2000인 직원의 계산:

SQL: SELECT SAL, AVG(SAL) OVER(ORDER BY SAL ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS AVG_VAL, FIRST_VALUE(SAL) OVER(ORDER BY SAL ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS FIRST_VAL, LAST_VALUE(SAL) OVER(ORDER BY SAL ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS LAST_VAL

① AVG_VAL=2000, FIRST_VAL=1000, LAST_VAL=3000 ② AVG_VAL=2000, FIRST_VAL=2000, LAST_VAL=2000 ③ AVG_VAL=2000, FIRST_VAL=1000, LAST_VAL=2000 ④ AVG_VAL=1500, FIRST_VAL=1000, LAST_VAL=2000

정답

1

해설

① 급여 2000인 직원의 윈도우 프레임은 1000(직전), 2000(현재), 3000(직후)입니다. AVG_VAL=(1000+2000+3000)/3=2000, FIRST_VALUE는 프레임의 첫 번째 값인 1000, LAST_VALUE는 프레임의 마지막 값인 3000입니다. ② FIRST_VALUE와 LAST_VALUE가 모두 현재 행 값으로 잘못 계산했습니다. ③ LAST_VALUE를 현재 행 값으로 잘못 계산했습니다. ④ 평균 계산이 틀렸습니다.

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

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

[SQLD] 윈도우 함수 SQL 활용 기출 #245 | sqldpass