본문 바로가기
HackerRank - MS SQL Server

[해커랭크/MS SQL] The Blunder

by nomeleon 2022. 3. 25.
반응형

문제 링크입니다!

 

The Blunder | HackerRank

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

www.hackerrank.com

 

문제

 

=> 사만다는 직원 테이블에 있는 모든 직원의 평균 월급을 계산하는 일을 맡았지만 계산을 마친 후에야 키보드의 0 키가 고장 났다는 것을 알았다.

그녀는 자신의 오계산(0을 빼고 계산)과 실제 평균 급여 간의 차이를 찾는 데 도움을 받고자 한다.

오류의 양(즉, 실제 평균 급여 - 잘못 계산된 월평균 급여)을 계산하고 정수로 반올림하여 조회해라.


 

풀이

select
    cast(ceiling(avg(cast(salary as float)) 
    - avg(cast(replace(salary,0,'') as float))) as int)
from
    employees

EMPLOYEE TABLE의 Salary 컬럼의 자료형은은 INTEGER(정수) => 실제 평균 급여, 잘못 계산된 월 평균 급여를 FLOAT(실수) 형으로 변경하여 계산한 값을 정수로 반올림

  • CAST : 한 데이터 형식의 식을 다른 데이터 형식으로 변환
  • CEILING : 지정한 숫자 식보다 크거나 같은 최소 정수를 반환
  • REPLACE : 지정된 문자열 값의 모든 항목을 다른 문자열 값으로 바꿈
 

CAST 및 CONVERT(Transact-SQL) - SQL Server

CAST 및 CONVERT 함수의 Transact-SQL 참조입니다. 해당 함수는 특정 데이터 형식의 식을 다른 데이터 형식으로 변환합니다.

docs.microsoft.com

 

CEILING(Transact-SQL) - SQL Server

CEILING(Transact-SQL)

docs.microsoft.com

 

REPLACE(Transact-SQL) - SQL Server

지정된 문자열 값의 모든 항목을 다른 문자열 값으로 바꾸는 REPLACE 함수의 Transact-SQL 참조입니다.

docs.microsoft.com

 

댓글