본문 바로가기

코딩일기

SQL 코드카타 156 - The Blunder

https://www.hackerrank.com/challenges/the-blunder/problem?isFullScreen=true

 

The Blunder | HackerRank

Query the amount of error in Sam's result, rounded up to the next integer.

www.hackerrank.com

 

Column Type
ID Integer
NAME Integer 
SALARY Integer

 

EMPLOYEES 테이블:

  • ID : 테이블의 고유 키
  • NAME : 직원의 이름
  • SALARY : 급여

모든 직원에 대한 월평균 급여를 계산하는 작업을 맡았으나, 계산을 완료한 후 키보드의 '0' 키가 고장 난 것을 알게 되었습니다. 그녀는 '0'이 제거된 급여를 사용하여 잘못 계산한 값과 실제 평균 급여 간의 차이를 찾는 데 도움을 요청합니다.

실제 평균 월급과 잘못 계산된 평균 월급의 차이를 계산하는 쿼리를 작성하고, 그 값을 다음 정수로 반올림하세요.

 

select  replace(SALARY, '0', '')
from EMPLOYEES

 

먼저 SALARY에서 0을 모두 제거한 열을 출력한다.

 

select SALARY - replace(SALARY, '0', '')
from EMPLOYEES

 

원래 급여와의 차이를 구해준다.

 

select ceil(avg(SALARY) - avg(replace(SALARY, '0', '')))
from EMPLOYEES

 

각각 평균을 구한 뒤 정수로 반올림하면 완료!

 

ceil과 round를 구분하지 못해서 시간이 좀 걸렸다.