<MySQL> 查询数据进阶操作 -- 聚合查询

目录

一、聚合查询概述

二、聚合函数查询

2.1 常用函数

2.2 使用函数演示

2.3 聚合函数参数为*或列名的查询区别

2.4 字符串不能参与数学运算

2.5 具有误导性的结果集

三、分组查询 group by

四、分组后条件表达式查询

五、MySQL 中各个关键字的执行顺序


一、聚合查询概述

        MySQL查询数据时,通过where等关键字组成条件表达式对列与列之间的数据进行运算。但是行与行之间的运算则无法通过条件表达式来描述,此时就需要使用聚合查询的方式进行查询操作

聚合查询的常用方式: 聚合函数查询
分组查询
分组后条件表达式查询

二、聚合函数查询

2.1 常用函数

函数释义
count(*或列名)返回查询到的数据的行数(数量)
sum(*或列名)返回查询到的数据的总和,只能计算数字
avg(*或列名)返回查询到的数据的平均值,只能计算数字
max(*或列名)返回查询到的数据的最大值,只能计算数字
min(*或列名)返回查询到的数据的最小值,只能计算数字

2.2 使用函数演示

执行步骤:先执行查询语句 select *或列 from 表;
再执行聚合函数;

2.3 聚合函数参数为*或列名的查询区别

聚合函数参数为*或列名的查询区别当查询内容为null时
参数为*null参与计算,当null参与计算时,结果通常为null
参数为列名null不参与计算,忽略null

2.4 字符串不能参与数学运算

2.5 具有误导性的结果集

        由上述可知,非聚合查询和聚合查询不能在同一语句中混用!

        只有一个情况是例外的 —— 使用分组查询 group by 时。


三、分组查询 group by

        group by 是进行分组查询时使用的关键字,表示将根据关键字后的列名对数据进行分组,列中数值相同的数据将被分成一组

        group by 通常搭配聚合函数使用。

        除被 group by 的列,其他字段想出现在同一查询语句中,则必须包含在聚合函数中


四、分组后条件表达式查询

        使用 group by 子句对进行分组后,如果还需要对分组结果再进行条件过滤时,不应使用 where 语句,而要使用 having 关键字。

        使用 having 关键字是针对分组之后的数据进行条件过滤的。

where 关键字 和 having 关键字 的区别
where用于分组之前的条件筛选
having用于分组之后的条件筛选


五、MySQL 中各个关键字的执行顺序

fromonjoinwheregroup bywithhavingselectdistinctorder bylimit

        关键字从左到右,优先级依次从高到低。优先级高的关键字先执行。


阅读指针 -> 《MySQL表数据的 CRUD 进阶操作 -- 联合查询》

链接生成中..............

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/175791.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Alter database open fails with ORA-00600 kcratr_nab_less_than_odr

Alter database open fails with ORA-00600 kcratr_nab_less_than_odr (Doc ID 1296264.1)​编辑To Bottom APPLIES TO: Oracle Database - Enterprise Edition - Version 11.2.0.1 to 11.2.0.1 [Release 11.2] Oracle Database - Enterprise Edition - Version 12.1.0.1 to …

诡异的bug之dlopen

序 本文给大家分享一个比较诡异的bug,是关于dlopen的,我大致罗列了我项目中使用代码方式及结构,更好的复现这个问题,也帮助大家进一步理解dlopen. 问题复现 以下是项目代码的文件结构: # tree . ├── file1 │ …

PHP 服装销售管理系统mysql数据库web结构layUI布局apache计算机软件工程网页wamp

一、源码特点 PHP 服装销售管理系统是一套完善的web设计系统mysql数据库 ,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 php服装销售管理系统1 二、功能介绍 (1)员工管理:对员工信息…

二叉树基础

前言 我们好久没有更新数据结构的博文了,今天来更新一期树!前几期我们已经介绍了顺序表、链表,栈和队列等基本的线性数据结构并对其分别做了实现,本期我们再来介绍一个灰常重要的非线性基本结构 ---- 树型结构。 本期内容介绍 树…

232.用栈实现队列(LeetCode)

思路 思路:利用两个栈实现队列先进先出的特性,先将元素导入一个栈内 模拟出队时,则将所有元素导入另一个栈内,此时元素顺序被反转过来,只需要取栈顶数据即可 那我们就可以将两个栈的功能分开,一个专门入pus…

关于Chrome中F12调试Console输入多行

在chrome 浏览器中使用console调试的时,如果想在console中输入多行代码,需要进行换行。 这时我们可以使用 [ Shift Enter ] 。也叫: 软回车。

Postman配置环境请求接口

一、准备配置dev、test、demo、eprod 二、使用切换环境变量调用接口 三、使用登录接口自动获取token

【万字长文】前端性能优化实践 | 京东云技术团队

一、引言 从一个假死页面引发的思考: 作为前端开发,除了要攻克页面难点,也要有更深的自我目标,性能优化是自我提升中很重要的一环; 在前端开发中,会偶遇到页面假死的现象, 是因为当js有大量计算…

SoftwareTest6 - 用 Selenium 怎么点点点

用 Selenium 来点点点 一 . 什么是自动化 ?1.1 自动化测试的分类接口自动化测试UI 自动化测试 (界面测试) 1.2 实现自动化测试的工具 : selenium环境部署驱动 二 . selenium 的使用2.1 一个简单的示例 : 让谷歌浏览器在百度首页搜索蔡徐坤准备工作编写代码 2.2 打开谷歌浏览器…

完整版指南:企业网络中的VXLAN-BGP-EVPN

随着互联网的发展,数据中心的数量和规模呈爆炸性增长趋势。数据中心业务不断增加,用户需求不断提高。随之而来的问题是数据中心的功能变得越来越复杂,运维管理变得越来越困难。VXLAN-BGP-EVPN的出现为企业网络带来了无限的可能性。 什么是VX…

Pytorch自动混合精度的计算:torch.cuda.amp.autocast

1 autocast介绍 1.1 什么是AMP? 默认情况下,大多数深度学习框架都采用32位浮点算法进行训练。2017年,NVIDIA研究了一种用于混合精度训练的方法,该方法在训练网络时将单精度(FP32)与半精度(FP16)结合在一起&#xff…

20.2 设备树中的 platform 驱动编写

一、设备树下的 platform 驱动 platform 驱动框架分为总线、设备和驱动,总线不需要我们去管理,这个是 Linux 内核提供。在有了设备树的前提下,我们只需要实现 platform_driver 即可。 1. 修改 pinctrl-stm32.c 文件 先复习一下 pinctrl 子系…