EMPLOYEES 테이블에서 모든 직원의 실제 평균 월급과, 각 직원의 월급에서 숫자 0을 제거한 뒤 계산된 잘못된 평균 월급의 차이를 올림하여 출력하는 문제이다.
실제 평균 월급은 AVG(SALARY)로 구할 수 있다.
반면 잘못 계산된 평균 월급은 각 직원의 월급에서 숫자 0을 제거한 후 계산한 값이다.
이를 위해 REPLACE(SALARY, 0, '')를 사용하여 0을 제거하고, REPLACE()의 결과는 문자열이므로 CAST(... AS SIGNED)로 정수형으로 변환해줘야 한다.
이제 두 평균의 차이를 구하고, CEIL()로 올림 처리하면 원하는 값을 얻을 수 있다.
SELECT CEIL(
AVG(SALARY) - AVG(CAST(REPLACE(SALARY, 0, '') AS SIGNED))
)
FROM EMPLOYEES;