빈 OVER()를 사용하면 모든 행을 하나의 윈도로 보고 전체 합계를 계산할 수 있습니다. 정수 나눗셈을 피하려면 실수 연산이 필요합니다.
각 사원의 이름, 급여, **전체 급여 합계에서 개인 급여가 차지하는 비율(%)**을 조회하세요. 비율은 소수점 둘째 자리로 반올림합니다.
부서 테이블
| 부서번호 | 부서명 | 지역 |
|---|---|---|
| 10 | 경영 | 서울 |
| 20 | 개발 | 판교 |
| 30 | 영업 | 부산 |
| 40 | 인사 | 대전 |
사원 테이블 — 수당이 없는 사원은 NULL, 부서 미배정 사원은 부서번호가 NULL
| 사원번호 | 이름 | 직급 | 부서번호 | 급여 | 수당 | 입사일 |
|---|---|---|---|---|---|---|
| 1 | 김철수 | 부장 | 10 | 5000 | NULL | 2018-03-01 |
| 2 | 이영희 | 과장 | 20 | 4000 | NULL | 2019-06-15 |
| 3 | 박민수 | 대리 | 20 | 3000 | NULL | 2020-01-10 |
| 4 | 최지우 | 사원 | 20 | 2500 | 500 | 2021-09-01 |
| 5 | 정해인 | 과장 | 30 | 3800 | 300 | 2019-11-20 |
| 6 | 한가인 | 대리 | 30 | 2800 | NULL | 2020-07-07 |
| 7 | 오세훈 | 사원 | 30 | 2200 | 400 | 2022-02-14 |
| 8 | 신동엽 | 부장 | 10 | 5200 | NULL | 2017-05-05 |
| 9 | 김보검 | 사원 | NULL | 2400 | NULL | 2023-01-05 |
결과의 컬럼 이름은 채점하지 않습니다. 값과 행·열의 모양만 맞으면 정답이에요.
함수() OVER (...)는 상세 행을 유지한 채 순위·집계를 붙입니다.PARTITION BY는 계산 그룹, 윈도 안의 ORDER BY는 계산 순서를 정합니다.ORDER BY로 따로 지정해야 합니다.SQL을 작성하고 Run 을 눌러보세요.