본문 바로가기
PS/SQL

[HackerRank] Weather Observation Station 13

by 행복한라이언 2024. 4. 24.
728x90
반응형

문제링크

https://www.hackerrank.com/challenges/weather-observation-station-13/problem?isFullScreen=true

 

Weather Observation Station 13 | HackerRank

Query the sum of Northern Latitudes having values greater than 38.7880 and less than 137.2345, truncated to 4 decimal places.

www.hackerrank.com

 

1. 핵심

  • ROUND(컬럼명, 숫자) - 반올림 VS TRUNCATE(컬럼명, 숫자) - 버림
`ROUND()`과 `TRUNCATE()`은 SQL에서 숫자 값을 조작하는 데 사용되는 함수로, 다음과 같이 동작합니다:

1. **ROUND():**
   - 구문: `ROUND(컬럼명, 소수 자릿수)`
   - 목적: 숫자 값을 지정된 소수 자릿수로 반올림합니다.
   - 동작:
     - 소수 자릿수가 양수인 경우, 해당 소수 자릿수로 값을 반올림합니다.
     - 소수 자릿수가 음수인 경우, 소수점 왼쪽으로 값을 반올림합니다.
     - 표준 반올림 규칙을 따릅니다 (예: 다음 숫자가 5 이상이면 반올림합니다).
   - 예시: `ROUND(3.14159, 2)`는 `3.14`를 반환합니다.

2. **TRUNCATE():**
   - 구문: `TRUNCATE(컬럼명, 소수 자릿수)`
   - 목적: 숫자 값을 지정된 소수 자릿수로 절단합니다.
   - 동작:
     - 지정된 소수 자릿수를 초과하는 숫자를 간단히 삭제하여 결과를 반환합니다.
     - `ROUND()`와 달리, `TRUNCATE()`는 반올림을 수행하지 않습니다. 단순히 지정된 소수 자릿수 이후의 숫자를 삭제합니다.
   - 예시: `TRUNCATE(3.14159, 2)`는 `3.14`를 반환합니다.

**차이:**
- `ROUND()`는 표준 반올림 규칙에 따라 값을 조정하며, 필요한 경우 마지막 숫자를 변경하여 지정된 소수 자릿수를 얻습니다.
- `TRUNCATE()`는 반올림 없이 지정된 소수 자릿수 이후의 숫자를 단순히 삭제합니다.

예를 들어:
- `ROUND(3.666, 2)`는 반올림하여 `3.67`을 반환합니다.
- `TRUNCATE(3.666, 2)`는 반올림 없이 `3.66`을 반환합니다.

2. 코드(MySQL)

select truncate(sum(LAT_N),  4)
from STATION
where LAT_N > 38.7880 and LAT_N < 137.2345
728x90
반응형