max日期最大值为0_MySQL ----- 聚集函数(AVG,SUM,COUNT,MIN,MAX) (十一)

为了汇总数据而不把实际的检索出来,MySQL 提供了专门的函数,聚集函数

  好处:可以将检索数据进行分析和报表生成

一、聚集函数(aggregate function): 运行在行组上,计算和返回单个值的函数。

可以用来:

  1、确定表中的行数(或满足某个条件 或 包含某个特定值的行数)

  2、获得表中行组的行

  3、找出表列(或所有行货某些特定的行)的最大值、最小值 和 平均值

都是对表中的数据进行汇总,而不是对实际数据本身,只是一个汇总信息,要返回实际的数据是对时间、处理资源的一种浪费。

0137f76d39163195f75c1674425aab70.png

MySQL 还支持一系列的标准偏差聚集函数

one、AVG() 函数 计算平均数

e8fe64199d004705f3a3af8c7f8ab000.png

avg()通过 对表中行数计数 并计算 特定列值之和,求得该列的平均值。

  既可以返回所有列的平均值也可以返回特定列或行的平均值

求出表中所有产品的平均价格

-- 求出商品价格的平均数 

9a00b99be24670b4a2b466bd7ba346c5.png

求出表中特定列或行的的平均值

与where 字句连用

-- 求出 供应商是 1003 产品的平均值 

a790afbd3088ddbc33ee832a8bfb0c41.png

注意:

  1、AVG() 只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出

  2、为了获取多个列的平均值必须使用多个AVG 函数。

  3、AVG() 函数忽略列值为NULL 的行。

two、COUNT() 函数 计算总行数

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

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

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

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

-- 计算products 表中有几行 

b571d325fd5c42fe4412d375afd80bbd.png

计算特定行

--  计算  邮件有几行 

1dff4245f264fea4b1374083cee1f723.png

使用 count(*) 包括nul 值,使用 count(列名),不包括Null 值

three、MAX() 函数 : 返回指定列的最大值

-- 找出产品表中供应商编码为 1003 的 价格最大的 

3b81b6e0bd99084dd0db139810875d21.png

注意:

  1、max()函数 虽然一般用来找出最大的数值或日期值,但是MySQL 也允许将他用来返回任意列中的最大值

  2、用于文本数据时,如果按照相应列的排序,max() 返回最后一行

  3、Max() 函数忽略列值为NULL 的行

555ddc3d2070a2d7cfe0540a5b396085.png

four、MIN() 函数 : 返回指定列的最小值

和max 类似,一个大一个小,,where 子句也是起作用的

c17ac63f1b902561fa4a86c1ac7709be.png

注意:

  1、min()函数 虽然一般用来找出最大的数值或日期值,但是MySQL 也允许将他用来返回任意列中的最小值

  2、用于文本数据时,如果按照相应列的排序,min() 返回最前面的一行

  3、MIN() 函数忽略列值为NULL 的行

c06cf6e5a2e42448d477a72e57981064.png

five、SUM()函数 : 返回指定列值的和

-- 计算 供应商为 1003 的商品价格之和

27cef8e8ce25f692a81d3202e5b073eb.png
-- 计算订单表所有商品的总价格   价格* 数量 的 和 

66856412fc3f8752ba9409e4f48196a0.png

注意:

  1、利用标准的算术操作符,所有的聚集函数都可用来指定多列上的计算

  2、SUM() 函数忽略列值为NULL 的行

利用现在的聚集函数,和之前学的搭配使用可以产生很多种效果

二、聚集不同值 ALL 和 DISTINCT

ALL :对所有的行执行计算,,指定ALL 参数或不给参数(因为ALL 时默认的)

DISTINCT : 只包含不同的值,指定DISTINCT参数

all 参数不需要指定,因为时默认的行为,如果不指定disinct 则假定为all

38762048bcbed1b00d01fabda3cba850.png

有没有想到,最开始学习 select 语句的时候,只把不同的检索出来

注意:

  1、 如果指定列名,则DISTINCT 只能用于COUNT() ,不能用于count(*),

  2、不允许使用count(distinct) ,否则会产生错误

  3、disinct 必须使用列名,不能用于计算或表达式

  4、虽然distinct 可以用于MAX() 和 MIN() ,但是没有意义,因为最大最小值就一个,就是他的本身

1407dea37a923764462f95e2a7e7f282.png

三、组合聚集函数

使用select 语句包含了多个聚集函数

梦幻联动

-- 将订单为20005,行数,价格总数,平均数,最大最小值求出 

ca74643cb7d2bf8eee00adbc72b88d6e.png

注意:

  1、在指定列名包含某个聚集函数结果时,不要使用表示实际的列名

  2、取得列名要具有唯一性,便于识别和出错的时候排除故障

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值