Mysql聚合函数

聚合函数又称分组函数   多行(一组)数据  返回一个结果

数据表

链接:https://pan.baidu.com/s/1dPitBSxLznogqsbfwmih2Q 
提取码:b0rp 
--来自百度网盘超级会员V5的分享

聚合函数会自动排除掉null字段

AVG SUM 适用于数值类型    

MIN MAX 适用于数值类型,字符串类型,日期时间类型的字段(或变量)

COUNT 作用:计算指定字段在查询结构中出现的个数

COUNT(*)  COUNT(1) COUNT(2) 查询的是总条数

COUNT(字段)  会排除掉null

AVG=SUM/COUNT

SQL优化的一个点:

统计表中数据 用COUNT(*)  COUNT(字段)  COUNT(1) 哪种效率更高????

如果使用的是MyISAM引擎,是没有区别的.因该引擎内部有计数器维护行数

如果使用的是Innodb引擎,COUNT(*)=COUNT(1)>COUNT(字段)

因MyISAM不支持事务,现在普遍用的都是Innodb引擎,因此COUNT(*)或者COUNT(1)效率更高

GROUP BY的使用

使用多个列分组

同样Oracle中也会报错

结论: SELECT中出现的非分组函数的字段必须声名在GROUP BY中.反之GROUP BY中的字段可以不出现在SELECT中,但是一般不出现的话 往往没有意义,不知道哪个是哪个

GROUP BY 在 FROM 后面   WHERE 后面 ORDER BY前面

新特性

GROUP BY 中使用 WITH ROLLUP

使用WITH ROLLUP关键字之后,在所有查询出的分组记录之后增加一条记录,该记录计算查询出的所有记录的总和,即统计记录数量

注意:当使用ROLLUP时候,不能同时使用ORDER BY进行结果排序,ROLLUP和ORDER BY互斥

注意 WHERE执行之前  GROUP BY 还没有执行

HAVING的使用   (用来过滤分组之后数据)

下面两种方式   推荐使用方式1  原因  方式1的执行效率高于方式2

当过滤条件中有聚合时,则过滤条件必须声明在HAVING中,当过滤条件没有聚合函数,则此过滤条件声明在WHERE和HAVING中都是可以的,但是建议放在WHERE中,效率更高

一般没有聚合的条件放在WHERE   有聚合过滤放在HAVING

WHERE与HAVING对比:HAVING适用范围更广

WHERE效率更高

SQL底层的执行过程

SELECT语句的完整结构

SQL语句的执行过程

执行顺序

聚合函数练习

1.where子句可否使用组函数进行过滤?   不可以

2.查询公司员工工资的最大值,最小值,平均值,总和

3.查询各job_id的员工人数

4.查询员工最高工资和最低工资的差距(DIFFERENCE)

5.查询各个管理者手下员工的最低工资,其中最低工资不能低于6000

6.查询所有部门的名字,location_id,员工数量和平均工资,并按平均工资降序

7.查询每个工种,每个部门的部门名,工种名和最低工资

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

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

相关文章

Python中类的相关术语(附带案例)

目录 1、面向对象 2、类 3、实例 4、初始化方法 5、魔法方法 6、字符串方法 7、self 8、数据、属性、操作、行为 9、父类、基类、超类 or 子类、派生类 10、多态 11、重载多态 and 重写多态 12、名称解释 1、面向对象 在Python中,面向对象编程&…

实现单点登录

指再多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分。 相比于单系统登录,sso需要一个独立的认证中心,只有认证红心能接受用户的用户名密码等安全信息,其他系统…

nodejs详细介绍2以及vue脚手架

前言 首先给宝子们说声抱歉,因为自己在使用vscode执行vue脚手架的时候出现了很多问题,在经过解决之后还是有一个对应的我弄了一天没弄好,就是“vscode的终端将被任务重用,按任意键关闭”然后导致的是自己没心情学习一点&#xff…

人工视觉仍然需要图像采集卡

最初,图像采集卡被用作模拟视频数字转换器和图像缓冲器,但如今它们能够执行复杂的任务,例如图像处理。图像采集卡的设计不断发展,旨在提高系统性能并减少计算机处理需求。 除了图像采集之外,图像采集卡还执行机器视觉…

WebService的services.xml问题

WebService有多种实现方式,这里使用的是axis2 问题: 在本地开发,访问本地的http://localhost:8080/services/ims?wsdl,正常访问 但是打成jar包,不管是linux还是window启动,都访问不到,报错…

构建基于Flask的跑腿外卖小程序

跑腿外卖小程序作为现代生活中的重要组成部分,其技术实现涉及诸多方面,其中Web开发框架是至关重要的一环。在这篇文章中,我们将使用Python的Flask框架构建一个简单的跑腿外卖小程序的原型,展示其基本功能和实现原理。 首先&…

外汇天眼:澳大利亚法院判决西太平洋银行因不合理行为在利率互换交易中支付180万美元

联邦法院宣布,西太平洋银行在2016年10月执行120亿美元的利率互换交易时涉及不合理行为。西太平洋银行将支付与该行为相关的最高罚款180万美元,以及澳大利亚证券投资委员会(ASIC)的1800万美元的诉讼和调查费用。 西太平洋银行的不…

鸿蒙会取代Android吗?听风就是雨

现在说取代还谈不上,毕竟这需要时间。安卓作为全球第一的手机操作系统,短时间内还无法取代。持平iOS甚至超过iOS有很大可能,最终会呈现“三足鼎立”有望超过安卓基数。 作为全新的鸿蒙操作系统,其现在已经是全栈自研底座。按照鸿…

awk命令以及用法

awk:是列处理工具,把一行提取出来,然后一列一列的对比,读取一行,处理一行。 sed:是行编辑器,无法取列,也是读取一行,处理一行。 -F 以什么为分隔符 {print $n} 打印第…

异步任务的一些思考

前言 XXL-Job部署教程 项目中,必然少不了数据的导入导出,针对数据的导入导出简单复盘一下。 为了不占用资源消耗时间,影响用户体验,大量数据的导入导出一般都是异步执行 导入的时候,如果数据量很大,一次…

腾讯云部署vue+node项目

文章目录 一、安装宝塔二、vue项目部署三、node项目部署 前言: 关于项目部署,一开始也是找了很多资料,费了点时间,所以记录一下。希望能对各位有所帮助。 一、安装宝塔 1.首先在控制台,进入云服务器的终端界面 2.输入命令和密码获取权限,并且安装宝塔界面 yum install -y w…

配置IPv6静态路由

1、静态路由简介 静态路由是一种需要管理员手工配置的特殊路由。 静态路由在不同网络环境中有不同的目的: 当网络结构比较简单时,只需配置静态路由就可以使网络正常工作。 在复杂网络环境中,配置静态路由可以改进网络的性能,并…