문제
사원들의 이름과 ID, 월급을 담은 스키마 EMPLOYEES가 있다.
사만다는 이 스키마를 작성하며 사원들의 평균 월급을 구하려 한다. 하지만 그녀는 작성 중 키보드의 0키가 망가진 것을 알지 못했다. 후에 이를 알아차린 그녀는 잘못 입력한 월급의 평균과 원래 입력했어야 할 월급 평균의 차를 구해 수정하고자 한다.
원래 입력했어야 할 월급의 평균-잘못 입력한 월급 평균을 구하여라. 단, 소수점이 있을 경우 정수로 올림한다.
Sample Input :
Sample Output :
2061
내 코드:
select ceil(avg(salary)-avg(to_number(replace(to_char(salary), '0', ''))))
from employees;
Comment: Salary 컬럼에서 잘못 입력한 경우의 평균을 구하는 것이 핵심인 문제입니다. 그 과정은 다음과 같이 진행됩니다.
1. 우선 salary 컬럼을 to_char를 통해 문자열로 바꿉니다.
2. replace를 통해 '0'을 ''로 치환하여 제거합니다.
3. 0이 제거된 salary 컬럼을 to_number를 통해 다시 정수로 되돌립니다.
4. avg를 통해 평균을 구합니다.
올림을 할 때는 ceil을 써주면 됩니다.
'Database' 카테고리의 다른 글
[Oracle]Weather Observation Station 17(풀이 성공) (0) | 2021.04.16 |
---|---|
[Oracle] Top Earners(풀이 성공) (0) | 2021.04.12 |
[Oracle]Average Population of Each Continent(풀이 성공) (0) | 2021.04.01 |
[Oracle]Population Census(풀이 성공) (0) | 2021.04.01 |
[Oracle]Weather Observation Station 6(풀이 성공) (0) | 2021.03.29 |