1.首先我们需要了解下什么是聚合函数

  聚合函数aggregation function又称为组函数。 认情况下 聚合函数会对当前所在表当做一个组进行统计。

2.聚合函数的特点

  1.每个组函数接收一个参数(字段名或者表达式) 统计结果中默认忽略字段为NULL的记录

  2.要想列值为NULL的行也参与组函数的计算,必须使用IFNULL函数对NULL值做转换。

  3.不允许出现嵌套 比如sum(max(xx))

3.聚合函数 count(),求数据表的行数

1
select count(*/字段名) from 数据表

4.聚合函数 max(),求某列的最大数值

1
select max(字段名)from 数据表

  

5.聚合函数min(),求某列的最小值

1
select main(字段名) from 数据表

  

6.聚合函数sum(),对数据表的某列进行求和操作

1
select sum(字段名) from 数据表

  

7.聚合函数avg(),对数据表的某列进行求平均值操作

1
select avg(字段名) from 数据表

  

8.聚合函数和分组一起使用

1
select count(*),group_concat(age) from students group by age;

  

  总结:

  MySQL的聚合函数和我们日常office表使用的一些对表的操作的方法大致相同,在工作中主要配合分组使用

=====================================================

一、聚合函数(aggregation function)---也就是组函数

  在一个行的集合(一组行)上进行操作,对每个组给一个结果。

常用的组函数:

AVG([distinct] expr)

求平均值

COUNT({*|[distinct] } expr)

统计行的数量

MAX([distinct] expr)

求最大值

MIN([distinct] expr)

求最小值

SUM([distinct] expr)

求累加和

  ①每个组函数接收一个参数

  ②默认情况下,组函数忽略列值为null的行,不参与计算

  ③有时,会使用关键字distinct剔除字段值重复的条数

注意:

  1)当使用组函数的select语句中没有group by子句时,中间结果集中的所有行自动形成一组,然后计算组函数;

  2)组函数不允许嵌套,例如:count(max(…));

  3)组函数的参数可以是列或是函数表达式;

  4)一个SELECT子句中可出现多个聚集函数。

 table test

Field Type Null Key Default Extra
id int(11) NO PRI NULL auto_increment
name char(50) NO   NULL  
age int(11) NO   NULL  
school char(50) YES   NULL

(一)AVG()函数

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

例如:SELECT  AVG(age)  AS  avg_age  FROM test;

此语句返回表test中所有age的平均值。

例如:SELECT AVG(age) AS  avg_age FROM  test WHERE name="john";

此语句返回表test中name=john的age的平均值。

注:AVG只能确定特定数值列的平均值,而且列名必须作为函数参数给出。为了获得多个列的平均值,必须使用多个avg函数。而且avg函数会忽略列值为NULL的行。

(二)COUNT()函数

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

COUNT()有两种使用方式:

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

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

例如 SELECT COUNT(*)  AS num_test  FROM test;

此语句对表test所有行进行计数,返回表的总行数,不管行中各列有什么值。

例如 SELECT COUNT(school) FROM test;

此语句只对school列中有值的行进行计数,忽略null行。

(三)MAX()函数

MAX()函数返回指定列中的最大值。MAX()要求指定列名。

例如SELECT MAX(age) FROM test;

此语句返回表test中age的最大值。

注:MAX()函数忽略值为NULL的行。

(四)MIN()函数

MIN()函数返回指定列的最小值,MIN()要求指定列名。

例如 SELEC  MIN(age)  FROM test;

此语句返回最小的age值。

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

(五)SUM()函数

SUM()函数来返回指定列值的和(总计)。

SELECT  SUM(age)FROM test;

此语句返回age列所有值之和。

注:SUM函数忽略列值为NULL的行。SUM也可以用来合计计算值,SUM(price*count)。

(六)聚集不同值

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

1.对所有行执行计算,指定ALL参数或者不给参数(ALL参数是默认的)

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

例如SELECT  AVG(DISTINCT age) FROM test;

此语句返回age值不同的所有age值的平均值。

注:DISTINCT只能用在列名前面,不能用在表达式前。

MySQL之聚合数据(AVG,COUNT,MAX,MIN,SUM)的更多相关文章

  1. SQL-基础学习4--聚集函数:AVG(),COUNT(),MAX(),MIN(),SUM();聚集不同值:DISTINCT

    第九课 9.1 聚集函数(对某些行运行的函数,计算并返回一个值) 我们经常需要汇总数据而不用把它们实际检索出来,为此SQL提供了专门的函数.使用这些函数,SQL查询可用于检索数据,以便分析和报表生成. ...

  2. MySQL之汇总数据(AVG,COUNT,MAX,MIN,SUM)

    table test Field Type Null Key Default Extra id int(11) NO PRI NULL auto_increment name char(50) NO ...

  3. sql-函数avg,count,max,min,sum

     常用函数 AVG (平均) COUNT (计数) MAX (最大值) MIN (最小值) SUM (总合) 运用函数的语法是: SELECT "函数名"("栏位名&qu ...

  4. mysql之count,max,min,sum,avg,celing,floor

    写在前面 昨天去青龙峡玩了一天,累的跟狗似的.不过还好,最终也算登到山顶了,也算来北京后征服的第三座山了.这里也唠叨一句,做开发这行,没事还是多运动运动,对自己还是很有好处的,废话少说,还是折腾折腾s ...

  5. Linq查询操作之聚合操作(count,max,min,sum,average,aggregate,longcount)

    在Linq中有一些这样的操作,根据集合计算某一单一值,比如集合的最大值,最小值,平均值等等.Linq中包含7种操作,这7种操作被称作聚合操作. 1.Count操作,计算序列中元素的个数,或者计算满足一 ...

  6. SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum

    SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum avg() 函数 定义和用法 AVG 函数返回数值列的平均值.NULL ...

  7. group by与avg(),max(),min(),sum()函数的关系

    数据库表: create table pay_report(     rdate varchar(8),     --日期     region_id varchar(4),    --地市      ...

  8. 49-python基础-python3-列表-常用列表统计函数-max()-min()-sum()

    max() min() sum() 1-数字列表统计 实例: 2-字符串列表统计. 根据ASCII码大小统计字符串列表的min()和max(). 注意:sum()函数无法统计字符串列表. 实例:

  9. 列表推导式、生成器表达式以及zip()max()max()/min()sum()sort()map()filter()的用法

    列表推导式: 基本格式: variable = [out_exp_res for out_exp in input_list if out_exp == 2] #out_exp_res: 列表生成元素 ...

随机推荐

  1. 【Python56--爬取妹子图】

    爬取网站的思路 第一步:首先分析爬取网站的连接地址特性,发现翻页图片的时候连接:http://www.mmjpg.com/mm/1570  ,http://www.mmjpg.com/mm/1569, ...

  2. An error occurred (500 Error)

    Centos7 部署知乎出现上图问题 解决方法: [root@web02 ~]# vim /etc/php.ini #修改配置文件 session.auto_start = 0 #这条设置成0 [ro ...

  3. Python 装饰器实例

    retry 偶然看到一篇文章,想到了前几天的一个需求,git pull性能不稳,需要加入重试机制,正好这个装饰器的实例符合这样的场景. # coding:utf-8 import time impor ...

  4. 什么是pear的channel?

    从pear看程序的组成: 可执行命令文件: /usr/bin/pear, pearcmd peardev等; 实现功能的库,函数等文件: /var/lib/pear 等... 程序的资源目录, 主要是 ...

  5. SpringBoot Mybatis问题收集

    1.在SpringBoot中打印mybatis中执行的sql 其实在application.properties 文件下,添加一下配置即可: logging.level.org.springframe ...

  6. 【Entity framework】Code First Approach

    开篇之前感谢 china_fucan的文章给我的帮助,下面的评论也解决了很多问题同样给予感谢. code first 项目中的ORM框架如果采用的是EF,那么可能会采用code first的方式去使用 ...

  7. C盘清理

    魔方清理大师 “清理大师”->清理界面 一键清理=>开始扫描=>立刻清理 注册表清理=>开始扫描=>立刻清理 深度清理=>开始扫描=>立刻清理 C:\User ...

  8. qt QRegExp使用(搬运工)

    设置正则表达式. 类似下面的 QRegExp 这里的用法就是用来检测QString等字符串错误的,例如文件名里面最好就不出现<>|/\:等,所以可以如下定义QRegExp rx(" ...

  9. 4、lvs nat和dr类型演示

    实战操作 LVS-NAT  (应用场景:VIP是公网地址,DIP和RIP一般使用私网地址,NAT的主要目的是为了隐藏服务器) 核心要点: 1.DIP与各real server的RIP必须在同一个网段中 ...

  10. 搭建springboot环境

    1.前戏准备: SpringBoot核心jar包:这里直接从Spring官网下载了1.5.9版本. jdk:jdk1.8.0_45. maven项目管理工具:3.5版本. tomcat:8.5版本. ...