HackerRank | The Blunder

jeonghens·2025년 6월 6일
0

SQL: HackerRank

목록 보기
45/49

HackerRank The Blunder


문제

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;
profile
알고리즘이나 SQL 문제 풀이를 올리고 있습니다. 피드백 환영합니다!

0개의 댓글