MySQL 多行函数

文章目录

  • 多行函数
    • 1. 求 country 表中,所有国家人口的平均值,其 SQL 语句实现如下:
    • 2. 求 country 表中,所有国家人口的总数,其 SQL 语句实现如下:
    • 3. 求 country 表中,人口最多和最少国家的人口数量,其 SQL 语句实现如下:
    • 4. 求 country 表中,总共有多少个国家,其 SQL 语句实现如下:


多行函数

MySQL 多行函数_第1张图片

多行函数,即组函数,也叫聚合函数,它们的作用是对一组(至少 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)

你可能感兴趣的:(MySQL,mysql,数据库,sql)