文章目录
- 多行函数
- 1. 求 country 表中,所有国家人口的平均值,其 SQL 语句实现如下:
- 2. 求 country 表中,所有国家人口的总数,其 SQL 语句实现如下:
- 3. 求 country 表中,人口最多和最少国家的人口数量,其 SQL 语句实现如下:
- 4. 求 country 表中,总共有多少个国家,其 SQL 语句实现如下:
多行函数
多行函数,即组函数,也叫聚合函数,它们的作用是对一组(至少 2 条)记录进行统计计算,并得到统计结果。 在使用多行函数时需要注意以下两点:
- 默认情况下,多行函数忽略值为 null 的记录,不会把它们拿来参与运算。
- 默认情况下,多行函数会统计重复值,不会自动去重。
下面介绍常用的多行函数,input 表示字段名,如下表所示:
组函数名 | 说明 |
---|---|
AVG(input) | 求平均值 |
SUM(input) | 求和 |
MAX(input) | 求最大值 |
MIN(input) | 求最小值 |
COUNT(input) | 统计总数 |
接下来对上述多行函数进行演示。
开始下面实验时,请同学们自行导入上一次实验所下载的 world.sql,并切换数据库。
source /home/project/world.sql
1. 求 country 表中,所有国家人口的平均值,其 SQL 语句实现如下:
MariaDB [world]> select avg(population) as 平均人口 from country;
+---------------+
| 平均人口 |
+---------------+
| 25434098.1172 |
+---------------+
1 row in set (0.001 sec)
结果解析:求平均值一般会出现小数位,但像人口数这样的数据出现小数位就显得不合适。我们可以结合上一章的求四舍五入的单行函数,把小数点给去掉。修改后的 SQL 语句如下:
MariaDB [world]> select round(avg(population), 0) as 平均人口 from country;
+--------------+
| 平均人口 |
+--------------+
| 25434098 |
+--------------+
1 row in set (0.000 sec)
注意:在 round 函数中设置保留 0 位小数,所以结果只有整数部分。
2. 求 country 表中,所有国家人口的总数,其 SQL 语句实现如下:
MariaDB [world]> select sum(population) as 人口总数 from country;
+--------------+
| 人口总数 |
+--------------+
| 6078749450 |
+--------------+
1 row in set (0.000 sec)
3. 求 country 表中,人口最多和最少国家的人口数量,其 SQL 语句实现如下:
MariaDB [world]> select max(population) as 最多人口数, min(population) as 最少人口数 from country;
+-----------------+-----------------+
| 最多人口数 | 最少人口数 |
+-----------------+-----------------+
| 1277558000 | 0 |
+-----------------+-----------------+
1 row in set (0.000 sec)
注意:world 示例数据库中的数据仅供 MySQL 操作练习使用,不确保数据真实性。
4. 求 country 表中,总共有多少个国家,其 SQL 语句实现如下:
MariaDB [world]> select count(name) as 国家总数 from country;
+--------------+
| 国家总数 |
+--------------+
| 239 |
+--------------+
1 row in set (0.000 sec)