# ROUND()

ROUND() 函数用于把数值字段舍入为指定的小数位数。

## ROUND 简单案例

ROUND(X)： 返回参数X的四舍五入的一个整数。

```sql
mysql> SELECT ROUND(-1.49);
+--------------+
| ROUND(-1.49) |
+--------------+
|           -1 |
+--------------+
1 row in set (0.00 sec)

mysql> SELECT ROUND(-1.99);
+--------------+
| ROUND(-1.99) |
+--------------+
|           -2 |
+--------------+
1 row in set (0.00 sec)

mysql> SELECT ROUND(1.51);
+-------------+
| ROUND(1.51) |
+-------------+
|           2 |
+-------------+
1 row in set (0.00 sec)
```

ROUND(X, D)： 返回参数X的四舍五入的有 D 位小数的一个数字。如果D为0，结果将没有小数点或小数部分。

```sql
mysql> SELECT ROUND(1.388, 1);
+-----------------+
| ROUND(1.388, 1) |
+-----------------+
|             1.4 |
+-----------------+
1 row in set (0.00 sec)

mysql> SELECT ROUND(1.498, 0);
+-----------------+
| ROUND(1.498, 0) |
+-----------------+
|               1 |
+-----------------+
1 row in set (0.00 sec)
```

> 注意：ROUND 返回值数据类型会被变换为一个BIGINT!

## ROUND 案例

查询所有课程的平均报名人数，平均结果保留两位小数

```sql
SELECT ROUND(AVG(student_count),2) AS avg_student_count
FROM courses;
```

执行输出结果

```bash
mysql> SELECT ROUND(AVG(student_count),2) AS avg_student_count
    -> FROM courses;
+-------------------+
| avg_student_count |
+-------------------+
|            929.00 |
+-------------------+
1 row in set (0.00 sec)
```

## 练习题：ROUND

题目描述：查询教师年龄在20岁以上的平均教师年龄，输出结果为四舍五入的整数

```sql
SELECT ROUND(AVG(age)) as avg_teacher_age
FROM teachers
WHERE age > 20;
```

目标输出结果

```bash
mysql> SELECT ROUND(AVG(age)) as avg_teacher_age
    -> FROM teachers
    -> WHERE age > 20;
+-----------------+
| avg_teacher_age |
+-----------------+
|              23 |
+-----------------+
1 row in set (0.01 sec)
```
