MySQL5个聚集函数的注意_mysql-汇总(聚集)函数

我们需要汇总数据而不用把他们实际检索出来,他们主要用来进行分析和报表数据的生成。

cf1192aec0a6fc477ccf8ffc43711d7b4cc.jpg

1、AVG:通过对表中行数计数并计算特定列值之和,求得该列的平均值。可用来返回所有列的平均值,也可以用来返回特定列或行的平均值。如下:

select avg(prod_price) as avg_price from products;

以上语句的含义是,它包含products表中所有产品的平均价格。

avg()函数忽略列值为null的行

2、count:利用它确定表中行的数目或符合特定条件的行的数目,他有两种形式:

a、使用count(*)对表中行的数目进行计数,不管表列中包含的是空值NULL,还是非空值。

b、使用count(column)对特定列中具有值的行进行计数,忽略NULL值。

select count(*) as num_cust from customers;

如上语句,利用count(*) 对所有行计数,不管行中各列有什么值,计数值在num_cust中返回。

select count(cust_email) as num_cust from customers;(忽略NULL行)

3、MAX:返回指定列中的最大值。

select max(prod_price) as max_price from products;

需要注意的是,当max作用在文本数据时,如果数据按相应的列排序,则max返回最后一行。max也忽略列值为null的行。

4、MIN:它返回指定列的最小值。

select min(prod_price) as min_price from products;

需要注意的是,当min作用在文本数据时,如果数据按相应的列排序,则min返回首行。min也忽略列值为null的行。

5、SUM:用来返回指定列值的和(总计)

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

sum也可以用来合计计算值

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

sum也忽略内置为NULL的行。

6、distinct聚集不同的值

以上五个聚集函数都可以如下使用:

a、对所有的行执行计算,指定all参数或不给参数(因为ALL是默认行行为)。

b、只包含不同的值,指定distinct参数。(去同)

下面的列子使用avg()函数返回特定供应商提供的产品的平均价格。它与select相同,但使用了distinct参数,因此平均值只考虑各个不同的情况。

select avg(distinct prod_price) as avg_price from products where vend_id=1003;

从上面语句看出,在使用了distinct之后,此例子中的avg_price比较高,因为有多个物品具有相同的较低价格,排除他们可以提升价格。

distinct还可以用在count()三,如count(distinct prod_price)

7、组合聚集函数:

我们使用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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值