SQL学习之——聚集函数

2 篇文章 0 订阅

聚集函数

AVG()函数

  • AVG()可用来返回所有列的平均值,也可以用来返回特定列或行的平均值。

下面的例子使用AVG()函数返回Products表中所有产品的平均价格。

select avg(prod_price) as avg_price from products;

返回结果:
在这里插入图片描述

  • AVG()也可以用来确定特定列或行的平均值。

下面例子返回特定供应商所提供产品的平均价格:

select avg(prod_price) as avg_price from products where vend_id = 'DLL01';

输出:
在这里插入图片描述

  • 注:
    只用于单个列:AVG()只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出。若为了获得多个列的平均值,必须使用多个AVG()函数
  • 说明:
    AVG函数忽略列值为NULL的行。

COUNT()函数

COUNT()函数进行计数。可利用COUNT()函数确定表中行的数目或符合特定条件的行的数目。

COUNT()函数的两种使用方式:

  • 使用count(*) 对表中行的数目进行计数,不管表列中包含的是空值(NULL)还是非空值。
  • 使用count(column)对特定列中具有值的行进行计数忽略NULL值。

下面的例子返回Customers表中顾客的总数:

select count(*) as num_cust from Customers;

输出:(统计所有的行,不管行中各列有什么值)
在这里插入图片描述

下面的列子只对具有电子邮件地址的客户计数:

select count(cust_email) as num_cust from Customers;

输出:(只对cust_email列中有值的行进行计数)
在这里插入图片描述可见,5个顾客中,只有3个顾客有电子邮件地址

  • 说明:
    对于NULL值,如果指定列名,则count()函数会忽略指定的列名的值为空的行,但如果count()函数中用的是星号(*),则不会忽略NULL值。

MAX()函数

max()函数返回指定列中的最大值,参数是指定的列名。

select max(prod_price) as max_price from Products;
在这里插入图片描述* 注:在Mysql数据库中,将max()函数用于文本数据时,max()返回按该列排序后的最后一行

在这里插入图片描述下面的图表示按cust_name列排序后的数据。
在这里插入图片描述

  • 注:max()函数忽略列值为NULL的行。

MIN()函数

MIN()函数正与MAX()函数相反。即用在数值型列上时,返回的是该列的最小值。当用在文本型的数值列上时,Mysql返回按该列排序后最前面的一列

  • 注:min()函数忽略列值为NULL的行。

sum()函数

  • sum()用来返回指定列值的和(总计)。

下面的语句查找了订单编号为20005的物品的所有物品数量之和。

select sum(quantity) as items_ordered from orderitems where order_num = 20005;

返回结果:
在这里插入图片描述

  • sum()也可以用来合计计算值

在下面的例子中,合计订单编号为20005的总金额,即“每种商品的单价 x 该种商品的数量”

select sum(item_price * quantity) as total_price from orderitems where order_num = 20005;

output:
在这里插入图片描述

注:利用标准的算术操作符,所有聚集函数都可以用来执行多个列上的计算

  • sum()函数忽略列值为NULL的行。

组合聚集函数

select语句可以根据需要包含多个聚集函数

select count(*) as num_items, min(prod_price) as price_min, max(prod_price) as price_max, avg(prod_price) as price_avg from products;

输出:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值