千家信息网

MySQL数据查询中如何使用集合/聚合函数查询

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,小编给大家分享一下MySQL数据查询中如何使用集合/聚合函数查询,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!MySQL聚合函数如下:函数作用avg()返回某列的平均值count()
千家信息网最后更新 2026年11月02日MySQL数据查询中如何使用集合/聚合函数查询

小编给大家分享一下MySQL数据查询中如何使用集合/聚合函数查询,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

MySQL聚合函数如下:

函数作用
avg()返回某列的平均值
count()返回某列的行数
max()返回某列的最大值
min()返回某列的最小值
sum()返回某列值的和

(1)count()函数
(2)sum()函数
(3)avg()函数
(4)max()函数
(5)min()函数


(免费学习推荐:mysql视频教程)

(1)count()函数
  • count()函数统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数,有两种使用方法:
    ①count(*)计算表中总的行数,不管某列有数值或者为空值。
    ②count(字段名)计算指定列下总的行数,计算时将忽略空值的行。

【例1】查询customers表中总的行数,SQL语句如下:

mysql> select count(*) as cust_num    -> from customers;+----------+| cust_num |+----------+|        4 |+----------+1 row in set (0.06 sec)

由查询结果可知,count(*)返回customers表中记录的总行数,不管其值是什么。返回的总数的名称为cust_num。

【例2】查询customers表中有电子邮箱的顾客的总数,SQL语句如下:

mysql> select count(c_email) as email_num    -> from customers;+-----------+| email_num |+-----------+|         3 |+-----------+1 row in set (0.00 sec)

上面两个例子结果不同说明两种方式在计算总数的时候对待null值的方式不同,即指定列的值为空的行被count()函数忽略,但是如果不指定列,而在count()函数中使用*,则所有记录都不忽略。

【例3】在orderitems表中,使用count()函数与group by关键字一起使用,用来计算不同分组中的记录总数。

mysql> select o_num,count(f_id)    -> from orderitems    -> group by o_num;+-------+-------------+| o_num | count(f_id) |+-------+-------------+| 30001 |           4 || 30002 |           1 || 30003 |           1 || 30004 |           1 || 30005 |           4 |+-------+-------------+5 rows in set (0.00 sec)
(2)sum()函数
  • sum是一个求总和的函数,返回指定列值的总和。

【例】在orderitems表中查询30005号订单一共购买的水果总量,SQL语句如下:

mysql> select sum(quantity) as items_total    -> from orderitems    -> where o_num = 30005;+-------------+| items_total |+-------------+|          30 |+-------------+1 row in set (0.05 sec)

sum()可以和group by一起使用,用来计算每个分组的总和。

【例】在orderitems表中,使用sum()函数统计不同订单号中订购的水果总量,SQL语句如下:

mysql> select o_num,sum(quantity) as items_total    -> from orderitems    -> group by o_num;+-------+-------------+| o_num | items_total |+-------+-------------+| 30001 |          33 || 30002 |           2 || 30003 |         100 || 30004 |          50 || 30005 |          30 |+-------+-------------+5 rows in set (0.00 sec)

sum函数在计算时,忽略值为null的行。

(3)avg()函数
  • avg()函数通过计算返回的行数和每一列数据的和,求得指定列数据的平均值。

  • avg()函数使用时,其参数为要计算的列名称,如果要得到多个列的多个平均值,则需要在每一列上使用avg()函数。

【例1】在fruits表中,查询s_id=103的供应商的水果价格的平均值,SQL语句如下:

mysql> select avg(f_price) as avg_price    -> from fruits    -> where s_id = 103;+-----------+| avg_price |+-----------+|  5.700000 |+-----------+1 row in set (0.05 sec)

【例2】在fruits表中,查询每一个供应商的水果价格的平均值,SQL语句如下:

mysql> select s_id,avg(f_price) as avg_price    -> from fruits    -> group by s_id;+------+-----------+| s_id | avg_price |+------+-----------+|  104 |  7.000000 ||  101 |  6.200000 ||  103 |  5.700000 ||  107 |  3.600000 ||  102 |  8.933333 ||  105 |  7.466667 ||  106 | 15.700000 |+------+-----------+7 rows in set (0.00 sec)

group by 关键字根据s_id字段对记录进行分组,然后计算出每个分组的平均值,这种分组求平均值的方法非常有用。例如,求不同班级学生成绩的平均值,求不同部门工人的平均工资,求各地的年平均气温等。

(4)max()函数
  • max()返回指定列中的最大值。

  • max()函数除了用来找出最大的列值或日期值之外,还能返回任意列中的最大值,包括返回字符类型的最大值。

【例1】在fruits表中查找市场上价格最高的水果值,SQL语句如下:

mysql> select max(f_price) as max_price from fruits;+-----------+| max_price |+-----------+|     15.70 |+-----------+1 row in set (0.05 sec)

【例2】在fruits表中查找不同供应商提供的价格最高的水果值,SQL语句如下:

mysql> select s_id,max(f_price) as max_price    -> from fruits    -> group by s_id;+------+-----------+| s_id | max_price |+------+-----------+|  104 |      7.60 ||  101 |     10.20 ||  103 |      9.20 ||  107 |      3.60 ||  102 |     11.20 ||  105 |     11.60 ||  106 |     15.70 |+------+-----------+7 rows in set (0.00 sec)

【例3】在fruits表中查找f_name的最大值,SQL语句如下:

mysql> select max(f_name) from fruits;+-------------+| max(f_name) |+-------------+| xxxx        |+-------------+1 row in set (0.00 sec)
(5)min()函数

- min()返回查询列中的最小值。

【例1】在fruits表中查找市场上价格最低的水果值,SQL语句如下:

mysql> select min(f_price) as min_price    -> from fruits;+-----------+| min_price |+-----------+|      2.20 |+-----------+1 row in set (0.00 sec)

【例2】在fruits表中查找不同供应商提供的价格最低的水果汁,SQL语句如下:

mysql> select s_id,min(f_price) as min_price    -> from fruits    -> group by s_id;+------+-------------+| s_id | min_price |+------+-------------+|  104 |        6.40 ||  101 |        3.20 ||  103 |        2.20 ||  107 |        3.60 ||  102 |        5.30 ||  105 |        2.60 ||  106 |       15.70 |+------+-------------+7 rows in set (0.00 sec)

看完了这篇文章,相信你对"MySQL数据查询中如何使用集合/聚合函数查询"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

函数 查询 语句 不同 平均值 水果 数据 最大 价格 总数 最大值 分组 供应商 供应 总和 结果 数据查询 最低 最小 最高 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技 互联网扶贫科技 碳银互联网科技 九亚互联网科技 极限挑战互联网科技 互联网科技素材视频竖屏 温州喔噻互联网科技有限公司 互联网金融科技公司干啥的 华服互联网科技官网 武汉健翔互联网络科技有限公司 消费医药和互联网科技 广州新华互联网科技学校电竞方面 上海京穆互联网科技有限公司 银行科技岗属于互联网吗 风投北京互联网科技 有人说阿里系是互联网科技企业 工业互联网科技创业 全球科技与互联网公司市值变化 科技信息时代互联网发展 科技互联网专业务虚会材料 手冲咖啡和咖啡机区别 上海挚品互联网科技有限公司 互联网 视角下的科技创新 撒么互联网科技公司 佩信高科技互联网 知域互联网科技有限公司大骗子 互联网数据科技专业 烟台灵鸽互联网科技有限公司 中天科技中国工业互联网 广东鹅鹅鹅互联网科技有限公司
0