`ROUND()` 함수는 SQL에서 숫자를 지정된 자릿수로 반올림할 때 사용됩니다. 이 함수는 주어진 숫자를 소수점 아래 원하는 자릿수까지 반올림하여 반환합니다.
### 기본 구문
```sql
ROUND(number, decimals)
```
- `number`: 반올림할 숫자입니다.
- `decimals`: 소수점 아래 몇 번째 자리까지 반올림할지를 지정합니다. 이 값이 0이면 정수로 반올림됩니다.
### 예제
1. **소수점 첫째 자리까지 반올림**:
```sql
SELECT ROUND(123.456, 1); -- 결과: 123.5
```
- `123.456`을 소수점 첫째 자리까지 반올림하여 `123.5`를 반환합니다.
2. **소수점 둘째 자리까지 반올림**:
```sql
SELECT ROUND(123.456, 2); -- 결과: 123.46
```
- `123.456`을 소수점 둘째 자리까지 반올림하여 `123.46`을 반환합니다.
3. **정수로 반올림**:
```sql
SELECT ROUND(123.456, 0); -- 결과: 123
```
- `123.456`을 정수로 반올림하여 `123`을 반환합니다.
4. **음수 자릿수로 반올림**:
```sql
SELECT ROUND(123.456, -1); -- 결과: 120
```
- 소수점 왼쪽에서 반올림하여, `123.456`을 가장 가까운 10의 배수인 `120`으로 반올림합니다.
### 기본 동작
- `decimals` 인수를 생략하면 `ROUND()`는 기본적으로 `0`을 사용하여, 정수로 반올림합니다.
- 음수의 경우에는 소수점 왼쪽의 자리에서 반올림합니다.
### 요약
`ROUND()` 함수는 숫자를 원하는 자릿수로 반올림하는 데 사용되며, 반올림할 자릿수를 양수, 0, 또는 음수로 지정하여 다양한 반올림을 수행할 수 있습니다.
음수일때?
`ROUND()` 함수에서 두 번째 인수(`decimals`)가 음수일 때, 숫자를 소수점 왼쪽의 자릿수로 반올림합니다. 이 경우 반올림은 소수점 오른쪽이 아니라 왼쪽 자리에서 이루어집니다.
### 음수 자릿수에서의 `ROUND()` 함수 동작
- **`decimals = -1`**: 가장 가까운 10의 배수로 반올림
- **`decimals = -2`**: 가장 가까운 100의 배수로 반올림
- **`decimals = -3`**: 가장 가까운 1000의 배수로 반올림
- ...이런 식으로 음수의 절대값이 커질수록 더 높은 자리에서 반올림합니다.
### 예제
1. **`decimals = -1`** (가장 가까운 10의 배수로 반올림):
```sql
SELECT ROUND(123.456, -1); -- 결과: 120
SELECT ROUND(178.9, -1); -- 결과: 180
```
- `123.456`은 가장 가까운 10의 배수인 `120`으로 반올림됩니다.
- `178.9`는 가장 가까운 10의 배수인 `180`으로 반올림됩니다.
2. **`decimals = -2`** (가장 가까운 100의 배수로 반올림):
```sql
SELECT ROUND(123.456, -2); -- 결과: 100
SELECT ROUND(250.789, -2); -- 결과: 300
```
- `123.456`은 가장 가까운 100의 배수인 `100`으로 반올림됩니다.
- `250.789`는 가장 가까운 100의 배수인 `300`으로 반올림됩니다.
3. **`decimals = -3`** (가장 가까운 1000의 배수로 반올림):
```sql
SELECT ROUND(1234.567, -3); -- 결과: 1000
SELECT ROUND(6789.123, -3); -- 결과: 7000
```
- `1234.567`은 가장 가까운 1000의 배수인 `1000`으로 반올림됩니다.
- `6789.123`은 가장 가까운 1000의 배수인 `7000`으로 반올림됩니다.
### 요약
`ROUND()` 함수에서 두 번째 인수를 음수로 설정하면, 소수점 왼쪽의 자릿수를 기준으로 반올림이 이루어집니다. 이 경우, 음수의 절대값이 커질수록 더 큰 단위로 반올림이 됩니다.