mysql中having 与where 的异同点

23.MySQL中的HAVING(分组过滤) 目录 1.准备 2.实例演示 3.HAVING和WHERE的异同 1.准备 CREATE DATABASE mahaiwuji; USE mahaiwuji; CREATE TABLE student ( sid INT (4) PRIMARY KEY, sname VARCHAR (36), course VARCHAR (36), score INT, grade I... 阅读详情

时间:2017-03-09 08:54:34

[1]having与where类似,可以筛选数据,where后的表达式怎么写,having后就怎么写

[2]能用where的地方 也能用having ,用haveing的地上 不一定能用where

[实例一]

话说有一个学生成绩表(score),结构如下:

id(记录编号) sid(学生id) chinese(语文成绩) maths(数学成绩) english(英语成绩)

现在有一个需求是:找出语文成绩和数学成绩相差超过30分的同学(教育界称此现象为“偏科”)
SELECT sid,maths,chinese,ABS(chinese-maths) AS bk FROM score WHERE bk>30
mysql返回:Unknown column 'bk' in 'where clause';告诉我们,这样做不可行.
若把where改成having呢?
SELECT sid,maths,chinese,ABS(chinese-maths) AS bk FROM score HAVING bk>30

可喜可贺,成功返回记录集结果如下:

如果,不想用having怎么办呢?
SELECT sid,maths,chinese,ABS(chinese-maths) AS bk FROM score WHERE ABS(chinese-maths)>30

可喜可贺,成功返回记录集结果如下,和使用having达到了一样的效果。

听民间传言,据权威的说法是:
where针对表中的列发挥作用,查询数据

having是对查询结果中得到的列发挥作用,筛选数据(也就是说从查询出的结果集再次进行筛选)

为了更好的理解这句话,来一个where与having并用的sql来体验一下;请继续往下读.
[实例二]
话说有一个学生表(student)结构如下:
id(学生编号) name(姓名) sex(性别)

需求又来了,现在要得到.在数学成绩及格的前提下;计算出男,女的数学平均分各是多少
SELECT sex,AVG(maths) AS avgmaths FROM student,score WHERE student.id= score.sid AND maths>=60 GROUP BY sex

返回记录集如下:

得到了,男生的数学平均分为89.3333;女生的平均分为77.3333(国际惯例,数学当然是男生学的好喽!)
在以上原有需求再加一条,分组后平均分超过80分才显示
SELECT sex,AVG(maths) AS avgmaths FROM student,score WHERE student.id= score.sid AND maths>=60 AND avgmaths > 80 GROUP BY sex
mysql返回:Unknown column 'avgmaths' in 'where clause'
跟据上面的说话可以解释为:where是对表中的列发挥作用,avgmaths并非是表中的原有的列,所以失败了.

SELECT sex,AVG(maths) AS avgmaths FROM student,score WHERE student.id= score.sid AND maths>=60 GROUP BY sex HAVING avgmaths>80

成功返回记录:

haveing是对查询结果中得到的列(avgmaths)发挥作用,又进行了一次筛选。所以成功得到,所需记录。

Edge主页被2345劫持?手动清理注册表与组策略的完整方案 浏览器主页劫持是Windows系统中常见的恶意篡改行为,其原理是通过修改注册表、快捷方式、组策略等多处系统配置,强制锁定浏览器启动页。这类劫持不仅影响上网体验,还可能带来隐私泄露和恶意软件感染风险。在安全防护与系统优化场景中,掌握手动清理主页劫持的技能至关重要。本文针对Edge主页被2345导航劫持的问题,深入解析劫持入口,提供从快捷方式、注册表到组策略的逐层清理步骤,并给出防复发策略,帮助用户彻底摆脱顽固劫持。 阅读详情

相关推荐

FPGA波束形成:从算法到硬件的艺术之旅

本文深入探讨了FPGA在波束形成技术中的应用,从算法原理到Verilog硬件实现的全过程。文章详细分析了FPGA并行处理、低延迟和可重构特性如何优化波束形成系统性能,并提供了Verilog关键模块代码示例和资源优化策略,为工程师实现高效FPGA波束形成解决方案提供实用指导。

tea88的博客 1044

MySQL中having和where的区别及应用详解

WHERE子句用于在执行查询之前筛选行,而HAVING子句用于在执行聚合查询后筛选结果集。WHERE出现在FROM子句之后,GROUP BY子句之前;而HAVING出现在GROUP BY子句之后、ORDER BY子句之前。WHERE可以使用比较操作符和逻辑操作符来指定过滤条件,而HAVING不仅可以使用比较操作符和逻辑操作符,还可以使用聚合函数。

meser88的博客 584

5G NR LDPC码(2)—— 从基图到速率匹配:解码5G高速数据信道的标准化设计

本文深入解析了5G NR LDPC码的标准化设计流程。从作为核心骨架的基图(BG1/BG2)出发,详细阐述了其如何通过扩展因子Z灵活生成实际校验矩阵,并协同传输块大小计算与分段策略。文章重点剖析了基于循环缓存和冗余版本的速率匹配机制,以及其如何高效支撑增量冗余混合自动重传请求,从而确保5G高速数据信道在复杂环境下的可靠与高效传输。

weixin_29206669的博客 271

MySQL中having 与where 的异同点

在MySQL查询语句中, having与where类似,可以筛选数据,where后的表达式怎么写,having后就怎么写。 where针对表中的列发挥作用,查询数据 having对查询结果中的列发挥作用,筛选数据 //查询本店商品价格比市场价低多少钱,输出低200元以上的商品 select goods_id,good_name,market_price - shop_price

To be a coder 755

abaqus2matlab的安装与使用:如何用matlab提取abaqus的odb结果

官网abaqus2matlab官网地址matlab社区地址matlab社区地址在这里可以看到.m文件的源码论文:Abaqus2Matlab: A suitable tool for finite element post-processingabaqus2matlab可以处理.inp、.fil、.odb三种类型的文件。.inp文件:处理功能就在于只是单纯的输出inp文件,由于我自己写了自己的函数,不需要用到这个功能。

qianxin1234的博客 2016

[ensp报错:USG6000V错误代码45解决方案]

[ensp报错:USG6000V:错误代码45解决] [ensp报错:USG6000V:错误代码45解决] 第一种处理方式: ensp的45错误帮助文档里的解决方法:(这里就不说了,上华为爸爸的图) ensp的45错误:如果你的45错误不是描述的那个,可能是ensp与virtualbox不兼容了。 错误描述:具体表现为在virtualbox里没有vfw_usg的条目,虚拟介质管理器里也没有相应的条目: 就是vfw_usg_vdi这个 这种情况下你把ensp卸载重装多少次都没用,原因在两个软件的兼容

weixin_45456536的博客 3万+

MySQL与SQL Server的基本指令

在旧版本的sql-server中,没有架构这个说法,这是因为以前的sql-server使用用户名来充当架构,就是说用户名跟架构其实隐式的连在一起的,不需要我们关心。filename='C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQL\MSSQL\DATA\cpDB_log.ldf', -- 日志文件的物理名称。sqlserver:sp_rename ‘表名.旧列名’,‘新列名’,‘column’;sql server:以分号结尾,也可以省略。

ADCvbV的博客 426

摄像头读取出现VIDIOC_STREAMON: No space left on device 错误

先说下原因,linux中为usb camera提供了一个标准的V4L2的驱动以方便使用,只要符合驱动规范就可以实现即插即用usb camera设备,即免驱动安装。 但市面上的USB 摄像头都是2.0的。usb bus的 bandwidth是有限的,而V4L2驱动采用的是贪心原则,即camera会要求获取最大带宽;因此将两个camera接入一路usb bus,打开第二个camera(尤其是采用YUV...

houge101的博客 9287

mysql where 与having_mysql中的where和having子句的区别

having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前。而 having子句在聚合后对组记录进行筛选。SQL实例:一、显示每个地区的总人口数和总面积.SELECT region, SUM(population), SUM(area) FROM bbc GROUP BY region先以region把返回记录分成多个组,这...

weixin_36481760的博客 177

uni-app - 文本展开 / 收起折叠功能,支持自定义样式(当文本内容超出规定行数后,展开收起折叠的功能)兼容 H5 / App / 小程序且易用更容易修改的插件组件源码,超详细的示例代码及注释

uniapp实现文本的展开与收起功能,uniapp展开全部和收起,uniapp里文本的展开与收起,uniapp中文本内容超出规定行数后展开收起的处理,UNIAPP兼容h5、微信小程序多行文本展开或收起,uni-app中,文字超出隐藏并显示省略号(实现展开、收起全文),uni-app中文本过长-实现折叠与展开效果,中文本内容超出规定行数(字数)后展开收起的处理,超出部分...显示,uniapp适用于uniapp多行文本溢出显示...,多行文本展开或收起,uni-app-文本展开/收起折叠功能,支

🏆 前端领域优质创作者 5636

【WorkBuddy专栏51】Codex与WorkBuddy的底层基因——两条完全不同的AI智能体路线(上)

【WorkBuddy专栏51】Codex与WorkBuddy的底层基因——两条完全不同的AI智能体路线(上)

AI人人懂 2154

mysql中where语句与having的区别

mysql中where语句与having的区别

qq_21142893的博客 188

视觉测量实战:C#上位机+OpenCVSharp 实现工业零件尺寸自动检测(精准像素级,工业级可落地)

本次开发的上位机界面遵循工业现场操作规范简洁、直观、按钮大、文字清晰、参数可视化调节,操作人员为车间工人/质检员,无需复杂操作,所有控件均为WinForms原生控件,拖拽即可完成布局本次实战完成了C#上位机+OpenCVSharp 工业零件尺寸自动检测系统的完整开发,这套方案是工业视觉测量的标准落地方案,适配95%的规则几何零件的尺寸检测场景,从五金件、塑胶件到电子元件,全覆盖无死角。测量效率提升100倍、精度提升10倍、无人工误差、可适配流水线实时检测。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 848

MySQL 数据库中 where 和 having 的区别与使用

MySQL数据库中where 和having的区别与使用

qq_43765199的博客 625

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

MySQL第六讲·where和having的异同?

这样,我们就既利用了where条件的高效快速,又发挥了having可以使用包含分组统计函数的查询条件的优点,当数据量特别大的时候,运行效率会有很大的差别。首先我们需要把所有的信息都准备好,包括从关联表中获取的信息,对数据集进行分组,形成一个包含所有需要的信息的数据集合。可以看到,通过对销售数据按照交易日期和收银员进行分组,再对组内数据进行求和统计,就实现了对每天、每个收银员的销售数量和销售金额的查询。我们在进行查询的时候,经常需要按照条件对查询结果进行筛选,这就要用到条件语句where和having了。

安然无虞的博客 3190

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

mysql -- where 、having、using异同

一:using() 与having的用法区别 1. USING() using可用在join语句相同字段连接,起到和ON相同作用,inner join 和left join中都可以使用 示例: LEFT JOIN 正常写法: SELECT t1.id,t2.name FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE .... 其实也可以这么写...

weixin_30235225的博客 158

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

delete from 表名 where 条件_MySQL:如何用Where,Group,Having过滤/选择数据

"Where"是MySQL基础查询的数据过滤关键词"Group"是MySQL分组查询的数据汇总关键词"Having"是MySQL分组查询的数据过滤关键词"Where"与"Having"1.相同点:都是用于过滤数据【设置选择数据的条件】2.不同点:"Having"是分组后过滤数据;"Where"是分组前过滤数据基础查询语句组成:Select (distinct)字段1,字段2,字段3....From...

weixin_42187923的博客 2592

23.MySQL中的HAVING(分组过滤)

23.MySQL中的HAVING(分组过滤)1.准备2.实例演示3.HAVING和WHERE的异同 1.准备 CREATE TABLE student ( sid INT (4) PRIMARY KEY, sname VARCHAR (36), course VARCHAR (36), score INT, grade INT (4) ) ENGINE = INNODB DEFAULT CHARSET = utf8; INSERT INTO student VALUES (1,'aa'

qq_24889005的博客 830

mysql gour by_mysql -- where 、having、using异同

一:using() 与having的用法区别1. USING()using可用在join语句相同字段连接,起到和ON相同作用,inner join 和left join中都可以使用示例:LEFT JOIN 正常写法:SELECT t1.id,t2.name FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE ....其实也可以这么写:SELECT t1.id,t2....

weixin_36182916的博客 163

SQL关于having用法及与where的区别

先找到符合第一季度出售的id,再找到第一季度外出售的id,如果id在这两个表里面,那么这个id就不是仅在第一季度出售。不在其他季度,也有可能不在第一季度出售,也就是都没卖过这个产品,所以要和sales表连接,也就是该商品要有售出记录。1.where用在分组前,having用在分组后。3.分组内,【日期在第一季度的记录之和】=【该分组内的记录之和】(当这两个和相等,说明,这个id对应的产品只在第一季度销售)3.分组后,每组的最大日期和最小日期在给定的区间内。该表的每一行显示每个产品的名称和价格。

qq_41086461的博客 1742

having和where子句的区别

 having和where子句的区别  1.作用的对象不同。WHERE 子句作用于表和视图,HAVING 子句作用于组(group)。eg:SELECT city FROM weather WHERE temp_lo = (SELECT max(temp_lo) FROM weather);2.WHERE 在分组和聚集计算之前选取输入行(因此,它控制哪些行进入聚集计算), 而 HAVING

j260749883的专栏 625

mysql查询语句where与having子句区别

Mysql查询语句执行: SELECT selection_list /要查询的列名称/ FROM table_list /要查询的表名称/ WHERE condition /行条件/ GROUP BY grouping_columns /对结果分组/ HAVING condition /分组后的行条件/ ORDER BY sorting_columns /对结果排序/ LIMIT offset_start, row_count /结果限定/ having 与 where 的区别 案例: 以上可以看成

那就这样吧~ 159

MYSQL中where子句与having子句的区别

一。作用上的区别 having 子句和 where 子句均用于过滤数据,两者的区别在于:where 子句对结果集进行过滤筛选,而 having 子句则对分组的结果进行筛选。 例:统计公交公司为非“通恒公司”的最长线路里程大于 24 的分组信息,按最长线路里程数升序显示。 二。功能上的区别 group by 子句的 with rollup 选项:group by 子句将结果集分为若干个组,使用聚合函数可以对每个组内的数据进行信息统计,有时对各个组进行汇总计算时,需要在分组之后再加上一条汇总记录,.

zxj744021881的博客 825

MySQL:Where和Having

一、 异同点: 声明类型: where是约束声明 having是过滤声明 作用节点: where在结果返回之前约束查询条件 having在返回结果之后约束查询条件 使用聚合函数: where后不可使用聚合函数 having后可使用聚合函数 原因考虑第二条异同点 having后一般在group by之后 ...

weixin_44917369的博客 404

在oracle中where 子句和having子句中的区别

1.where 不能放在GROUP BY 后面 2.HAVING 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用相当于WHERE 3.WHERE 后面的条件中不能有聚集函数,比如SUM(),AVG()等,而HAVING 可以 Where和Having都是对查询结果的一种筛选,说的书面点就是设定条件的语句。下面分别说明其用法和异同点。注:本文使用字段为oracle数据

我爱大海V5的专栏 819

mysql中的where和having子句的区别

mysql中的where和having子句的区别 having的用法 having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前。而 having子句在聚合后对组记录进行筛选。 SQL实例: 一、显示每个地区的总人口数和总面积. SELECT region, SUM(population), SUM(...

weixin_30950887的博客 74
上一篇: MySQL5.7中使用GROUP_CONCAT数据被截断的问题
下一篇: mysql之order by
springdk2009
博客等级 码龄17年 1835粉丝 257原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值