1. 聚合函数

聚合函数 功能
count() 统计满足条件的记录的行数
max() 找出满足条件的记录的最大值
min() 找出满足条件的记录的最小值
sum() 统计满足条件的记录的值的和
avg() 统计满足条件的记录的值的平均数

注意:

  • count函数的使用:
    count(*)、count(id)、count(1)。
    count(*)能统计一共有多少条记录,而count(id)是统计id列的非空值的记录数,也就是说它们的值可能不同。扩展阅读: MySQL:count(*),count(字段),count(1)的区别

  • 在聚合函数的查询语句中,不能查询除了聚合函数和分组字段之外的字段,因为这样没有意义(一般数据库会报错)。

    select max(age) from stu
    select max(age),name from stu ×

  • 聚合函数一般配合group by一起使用

  • 聚合函数在配合group by时,可以额外查询分组字段

    select max(age), gender from stu group by gender

2. 分组查询

 分组查询就是将原有的数据进行分组统计。

select 分组列名1, 分组列表2, 聚合函数1, 聚合函数2 from 表名
group by 分组列名1, 分组列名2;

从格式我们可以看出,分组是可以根据多个字段进行分组的。

• 分组后的条件筛选

select 分组列名, 聚合函数 from 表名
[where 条件1]
group by 分组列名
[having 条件2(可以根据聚合函数的值进行判断)];

我们既可以用where进行条件筛选,也可以用having进行条件筛选。但是这两者放置的位置以及代码执行的逻辑是不同的!

注意:

  • select中出现的字段,必须在分组当中。
  • having子句中出现的条件判断的字段,也必须在分组当中。

例子:

-- 1
select gender, max(age) from student
where gender='男'
group by gender;-- 2
select gender, max(age) from student
group by gender
having gender='男';

对于示例1,where是对from和select的结构进行筛选的,在经过这一层筛选后,再执行group by进行分组。

对于实例2,having是对group by进行筛选的,在group by执行完毕后,再进行筛选。

SQL查询中各个关键字的执行先后顺序:

from > on > join > where > group by > with > having > select > distinct > order by > limit

MySQL详解 --- 聚合与分组相关推荐

  1. 大数据WEB阶段(六)MySql详解(二)

    MySql详解(二) 一.分组查询 语法: select col_name1,col_name2... from tb_name group by having ...; 练习: 执行下面的SQL,创 ...

  2. from mysql partition select_爬虫(九十九)mysql详解二

    **mysql中字段的常见类型: ** 二进制位 bit(长度) tinyint[(长度)] [有无符号unsigned] [位数低于长度时候是否填充零zerofill] 有符号表示范围-128 ~ ...

  3. MySql详解(六)

    MySql详解(六) MySql事务 一.含义 事务:一条或多条sql语句组成一个执行单位,一组sql语句要么都执行要么都不执行 二.特点(ACID) A 原子性:一个事务是不可再分割的整体,要么都执 ...

  4. MySql详解(四)

    MySql详解(四) MySql的DML操作 插入: 一.方式一 语法: insert into 表名(字段名,...) values(值,...); 特点: 1.要求值的类型和字段的类型要一致或兼容 ...

  5. Mysql详解——索引优化

    本篇文章是对Mysql索引的创建以及优化进行一个介绍,关于索引的底层原理可以看我另一篇文章:Mysql详解--索引详解 文章目录 一.索引的创建和设计原则 1. 索引的声明和使用 1.1 索引的分类: ...

  6. 在虚拟机安装MySQL详解

    在虚拟机安装MySQL详解 MySQL是一种关系型数据库,原本是瑞典的公司叫MySqlAB公司,后被Oracle收购 DB:database,数据库,里边保存了有组织的规范的数据 DBMS:datab ...

  7. JPA+MySQL详解

    JPA+MySQL详解 首先明确两个端的关联关系,在java实体类定义中,含有mappedBy属性的时关系被维护端,含有关联字段的是关系维护端. 一.OneToOne关联关系 假设有实体People和 ...

  8. mysql详解(全)

    库表基础属性 mysql操作 mysql表操作 mysql表内容操作 mysql查询流程 存储引擎 数据记录存储格式 系统表汇总 建表规范 建表约束 字段类型 sql函数 存储过程 sql关键字 sq ...

  9. Linux 运维知识梳理(4)MySQL 详解

    文章目录 MySQL 安装 服务器标准化环境 一.源码包方式 二.glibc 包方式 三.rpm 包方式 SQL 语句简析 一.数据库 二.数据表 三.数据 四.数据类型 五.查询语句 用户与权限管理 ...

最新文章

  1. 这次中兴也藏了“备胎”!国产操作系统迎出头之日,即将规模商用
  2. 用java程序编写ip仿真器_用java 编写一个可以实现IP地址查询功能的课程设计
  3. 国内一线互联网公司内部面试题库
  4. php随机数、时间、字符串函数,正则,数组函数
  5. 服务器2012r2系统安装数据库,数据库图文详解Windows Server2012 R2中安装SQL Server2008...
  6. Oracle 11g创建Interval分区表
  7. java poi word 表格_java 使用POI 读写word 表格
  8. 叮,您有一份ML.NET 速查手册请查收!
  9. iOS 添加导航栏两侧按钮
  10. 服务器系统bsd,BSD操作系统大盘点:其它BSD变体
  11. yum提示Another app is currently holding the yum lock
  12. Mybatis原理分析之二:框架整体设计
  13. pycharm 常用设置
  14. 车载网络技术革新-CAN FD浅析
  15. python查看函数源代码
  16. 你们要的日文AI实时字幕来了,谷歌浏览器VS小白浏览器AI大比拼
  17. 时光轴全新导购网站购物新体验
  18. Tomcat访问localhost:8080直接跳转到项目首页
  19. java xlsm_使用apache poi写入xlsm(Excel 2007)
  20. 按头安利 好看又实用的毛笔书法字体素材看这里

热门文章

  1. 读入数据+使用snownlp进行情感分析
  2. kkt条件里面的松弛互补条件推导
  3. C语言实训 管理系统
  4. 黑马就业班(02.JavaWeb+项目实战\18.LinuxNginx)
  5. 51 Node 大鱼吃小鱼(栈水题)
  6. 《高效能人士的七个习惯》丨一本被书名耽误的必读好书
  7. VR全景--720全景 助力行业数字化新模式
  8. 会议活动如何与微信结合发挥微信营销助力转化优势
  9. 【笨木头Lua专栏】基础补充05:迭代器番外篇
  10. 威客网站系统开题报告