본문 바로가기
문제풀이/SQL(My sql)

[문제풀이] Hacker Rank - The Blunder

by kime2 2024. 6. 7.
출처

 

문제

Samantha was tasked with calculating the average monthly salaries for all employees in the EMPLOYEES table, but did not realize her keyboard's 0 key was broken until after completing the calculation. She wants your help finding the difference between her miscalculation (using salaries with any zeros removed), and the actual average salary.

Write a query calculating the amount of error, and round it up to the next integer.

 

문제에 대한 해석

실제 총 평균월급 - 0이 제거된 총 평균월급의 올림

  • 값에서 0을 제거
  • 올림

풀이(MYSQL)

SELECT 
    CEIL(AVG(salary) - AVG(REPLACE(salary, 0, '')))
FROM EMPLOYEES

 

작동순서

💡SQL 실행 순서는 From -> Where -> Group by -> Having -> Select -> Order by ->결과반환

  1. FROM 절: EMPLOYEES테이블에서 
  2. SELECT 절: salary의 평균과 salary에서 0을 제거한 평균의 차를 구해서 올림

 

배운점

  • CEIL(숫자) : 값보다 큰 정수 중 가장 작은 정수를 구합니다. 소수점 이하 올림을 의미합니다.
  • > round처럼 자릿수 입력 x 
  • REPLACE(값/컬럼, '변경할_값', '대체할 값')