SQL 통한 Database 관리

round ()

JBS 12 2024. 8. 30. 00:12

`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()` 함수에서 두 번째 인수를 음수로 설정하면, 소수점 왼쪽의 자릿수를 기준으로 반올림이 이루어집니다. 이 경우, 음수의 절대값이 커질수록 더 큰 단위로 반올림이 됩니다.

'SQL 통한 Database 관리' 카테고리의 다른 글

집계함수 종류  (0) 2024.08.30
having 절?  (0) 2024.08.30
date_format('2022-11-02', '%Y-%m-%d')  (0) 2024.08.30
substr('Gangneung Wonju', 8,4)  (0) 2024.08.30
공백도 문자 갯수에 포함?  (0) 2024.08.30