having子句

news2024/12/29 14:08:13

目录

having子句

having和where的区别


Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645

现在要求查询出每个职位的名称,职位的平均工资,但是要求显示平均工资高于 200 的职位

按照职位先进行分组,同时统计出每个职位的平均工资,随后要求只显示那些平均工资高于 200的职位信息

既然现在要对显示的数据进行筛选,自然就会想到使用 WHERE 子句

SQL> select job,avg(sal)
  2  from emp
  3  where avg(sal)>2000
  4  group by job;
where avg(sal)>2000
      *
第 3 行出现错误:
ORA-00934: 此处不允许使用分组函数

此时直接告诉用户,where子句上不允许出现统计函数(分组函数)

因为 group by 子句是在 where子句之后运行的,运行 where子句时还没有进行分组,自然就无法进行统计

所以在这样的 情况下,就必须使用另外一个子句完成: having子句

而此时的 SQL 语法结构变为如下形式

【确定要显示的数据列】select [distinct] * | 分组列 [ 别名 ] , 分组列 [ 别名 ] ...
【确定数据来源(行与列的集合)】from 表名称 [ 别名 ], 表名称 [ 别名 ],...
【针对数据行进行筛选】[where 限定条件 (s)]
【针对筛选的行分组】[group by 分组字段 , 分组字段 , 分组字段 ,...]
【针对筛选的行分组】[having 分组过滤 ]
【对选定数据的行与列排序】[order by  排序字段 [asc | desc], 排序字段 [asc | desc],...]

语法结构在前面的语法基础上增加 having子句,实现筛选的行分组

having子句

SQL> select job,avg(sal)
  2  from emp
  3  group by job
  4  having avg(sal)>2000;

JOB                  AVG(SAL)
------------------ ----------
ANALYST                  3000
MANAGER            2758.33333
PRESIDENT                5000

having子句是select语句的可选子句

它用于过滤由group by 子句返回的行分组

这就是为什么having子句通常与group by子句一起使用的原因

having和where的区别

where 不能放在group by 后面
having是跟group by 连在一起用的,放在group by 后面,此时的作用相当于where
hwere后面的条件中不能有聚集函数,比如sum(),avg()等,而having可以

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2000-2022年各省城乡收入差距泰尔指数数据(原始数据+计算过程+结果)

2000-2022年各省城乡收入差距泰尔指数数据(原始数据计算过程结果) 1、时间:2000-2022年 2、指标:地区、居民可支配收入(元)、农村家庭可支配(元)、城市家庭可支配(元&a…

Java线程基础知识和使用

目录 什么是线程 Java中线程的使用 线程的实现 并运行一个线程 如何为线程命名 查看当前jvm中运行的所有线程 线程池的基本使用 线程休眠 设置线程的优先级(都仅供参考) 线程的插队 线程的中断 线程的分类 线程的状态 什么是线程 线程是操…

Walmart 砸23亿美元收购 Vizio | 百能云芯

美国零售巨头沃尔玛(Walmart)宣布以 23 亿美元的价格收购智能电视品牌 Vizio,该举措旨在加速其广告业务 Walmart Connect 的增长。市场研究机构 TrendForce 看好此收购案,认为这有助于 Vizio 挑战三星的地位,成为美国第…

一个诗词网站的设计与实现

诗词网 0、前言 ​  前段时间非常喜欢诗词,又恰逢想开发一个社区类的系统,于是便有将两者结合起来的构想,说干就干,便有了诗词网(诗词社区系统)这个项目。 ​  由于是利用空闲时间进行开发&#xff0c…

更高效的构建工具-vite

更高效的构建工具-vite 前言Vite是什么Vite和webpack的比较1. 运行原理2. 使用成本 Vite的初体验 前言 首先我们要认识什么时构建工具? 企业级项目都具备什么功能呢? Typescript:如果遇到ts文件,我们需要使用tsc将typescript代码…

百度智能云分布式数据库 GaiaDB-X 与龙芯平台完成兼容认证

近日,百度智能云的分布式关系型数据库软件 V3.0 与龙芯中科技术股份有限公司的龙芯 3C5000L/3C5000 处理器平台完成兼容性测试,功能与稳定性良好,获得了龙架构兼容互认证证书。 龙芯系列处理器 通用 CPU 处理器是信息产业的基础部件&#xf…

Mac远程连接Windows 11

1. Windows配置 1.1 打开远程连接权限 打开“控制面板”搜索“远程”,选择“允许远程访问你的计算机”这一项。 1.2 添加远程连接用户 打开“计算机管理”,并在用户下新增“新用户”,share是我自己使用的名字,这个名字不固定随…

CSP-J 2023 T3 一元二次方程

文章目录 题目题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示 题目传送门题解思路总代码 提交结果尾声 题目 题目背景 众所周知,对一元二次方程 a x 2 b x c 0 , ( a ≠ 0 ) ax ^ 2 bx c 0, (a \neq 0) ax2bxc0,(a0),可…

关于dxf文件中,多段线凸度的计算

1.前言 在前面的CAD中的dxf文件解析(二)中讲到了一些CAD的dxf文件解析点、线、圆弧、圆、块等的思路。下面提供链接: (二): CAD中的dxf文件解析(二):dxflib的使用_不爱学习 未完待续的博客-CSDN博客_dxflib (一):CAD中的dxf文件解析(一):准备…

2024.2.22 C++QT 作业

思维导图 练习题 1>完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面。如果账…

如何将 .NET Aspire 应用程序部署到 Azure Container App

作者:Jiachen Jiang 排版:Alan Wang 最近发布的用于构建云原生应用程序的 .NET Aspire 与 Azure Container App(ACA)非常匹配。.NET Aspire 旨在轻松管理由一系列相互依赖的微服务组成的应用程序。Azure Container App 专为微服务…

Linux-时间接口-005

学习重点: 1.函数接口 2.【ls-l】命令的实现1【time】 1.1函数原型 【time_t time(time_t *tloc);】1.2函数功能 返回1970-1-1到现在的秒数(格林威治时间)1.3函数参数 1.3.1【tloc】 存放秒数空间首地址 存放的秒数:如果【t…

MySQL 窗口函数温故知新

本文用于复习数据库窗口函数,希望能够温故知新,也希望读到这篇文章的有所收获。 本文以:MySQL为例 参考文档: https://www.begtut.com/mysql/mysql-window-functions.html 使用的样例数据:https://www.begtut.com/m…

提高效率、降低成本:外贸企业必备好用ERP软件盘点

好用的外贸ERP软件有哪些?本期为您盘点的外贸ERP软件有:Zoho Books,孚盟M8,富通天下,睿贝软件。 外贸ERP系统是什么 企业资源规划(ERP)系统是一种先进的管理软件,尤其是在外贸和国际…

如何使用Docker部署开源Leanote蚂蚁笔记并发布个人博客至公网

最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 文章目录 1. 安装Docker2. Docker本地部署Leanote蚂蚁笔记3. 安装…

通过eeprom验证FPGA实现的单字节/页读写IIC接口时序

1、概括 前文设计基于FPGA的IIC接口模块,本文将使用eeprom来验证该模块的设计。为了便于查看读写波形,采用两个按键来控制对eeprom数据的读写,当按键0按下后,FPGA向eeprom的前64个存储地址写入地址对应的数据,当按键1按…

文件上传漏洞--Upload-labs--Pass20--数组绕过

一、漏洞原理 漏洞来源:count()函数漏洞。 现自定义一个数组 arr[],定义arr[0]1,arr[3]2, 此时count(arr)的值为2,则arr[count[arr]]即为arr[2],但是arr[2]未定义,即为一个空值,若使用count()函数的本意是…

大数据计算技术秘史(上篇)

在之前的文章《2024 年,一个大数据从业者决定……》《存储技术背后的那些事儿》中,我们粗略地回顾了大数据领域的存储技术。在解决了「数据怎么存」之后,下一步就是解决「数据怎么用」的问题。 其实在大数据技术兴起之前,对于用户…

【TCP/IP】组播

一、组播介绍 组播(Multicast)是网络技术中数据传输的一种方法,它允许将数据包同时发送给一组指定的目标,而不是单个的目标(单播 Unicast)或所有可能的目标(广播 Broadcast)。组播传…

Python的自定义函数

Python的自定义函数 自定义函数的作用匿名函数语法示例 自定义函数语法示例 自定义函数的作用 定制化需求降低代码重复编写 匿名函数 匿名函数,可以用lambda关键字定义。通过lambda构造的函数可以没有名称,即在自定义匿名函数时,所有代码可…