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

51次阅读
没有评论

共计 3865 个字符,预计需要花费 10 分钟才能阅读完成。

自动写代码机器人,免费开通

丸趣 TV 小编给大家分享一下 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 数据查询中如何使用集合 / 聚合函数查询”有了一定的了解,如果想了解更多相关知识,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计3865字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)