반응형
*MySQL 버전, 집계 함수(Aggregation) 문제입니다.
해커랭크 The Blunder 문제
- 문제 의도: 집계 함수 aggregation 사용
- 문제 상황
사만다의 키보드에서 숫자 0 작동 안 됨, 따라서 평균 급여 계산이 잘못됨.
실제 평균 급여와 잘못 계산된 평균 급여 차이(difference)를 구해야 함.
i.e.: actual - miscalculated average monthly salaries.
- 정수로 반올림(round it up to the next int) 필요.
해커랭크 The Blunder 문제 설명
대충 0 없어서 잘못 계산했다는 내용.
실제 급여는 2519.00, 잘못 계산한 값은 98.00이라서 2519.00 - 98.00 했다는 말.
차이가 2016.00인데 정수인 2016랑 같으니, 반올림할 필요 없다는 말.
해커랭크 The Blunder 답
- AVG 사용: 직원들의 평균 급여를 구하기 때문.
- CEIL 사용: 정수로 반올림하기 위함
- REPLACE 사용: 사만다 상황처럼 0을 없애야 하기 때문.
# actual - miscalculated average monthly salaries.
SELECT CEIL(AVG(salary) - AVG(REPLACE(salary, '0', ' ')))
FROM EMPLOYEES;
추가 정리
- CEIL() = CEILING(): CEIL(n)는 n보다 큰 정수 중 가장 작은 정수로 올림.
CEIL(1.15)
> 2
CEIL(-2.98)
> -2
- REPLACE(): 문자 변경 시 사용.
REPLACE('abc', 'a', 'b'): abc에서 a를 b로 바꿈
> bbc
- Blunder: 큰 실수, 바보 같은 실수
- 쿼리 쓸 때 괄호 범위 잘 확인하기
반응형
'SQL > HackerRank(해커랭크)' 카테고리의 다른 글
HackerRank(해커랭크) MySQL Weather Observation Station 19 문제 답 (2) | 2023.10.06 |
---|---|
HackerRank(해커랭크) MySQL Average Population of Each Continent 문제 답 (0) | 2023.10.05 |
HackerRank(해커랭크) MySQL Top Earners 문제 답 (0) | 2023.10.04 |
HackerRank(해커랭크) MySQL Weather Observation Station 15 문제 답 (0) | 2023.10.02 |
HackerRank(해커랭크) MySQL Binary Tree Nodes 문제 답 (0) | 2023.09.30 |