HAVING 是 SQL 中专门对 “分组之后的聚合结果” 再做筛选的子句。
它一般跟在 GROUP BY 后面,不能单独使用,作用类似于分组版的 WHERE


✅ 1. 语法位置

SELECT1, 聚合函数(2) AS 别名
FROMGROUP  BY1
HAVING 聚合条件;   -- 这里写对聚合结果的过滤条件

✅ 2. 与 WHERE 的区别(面试高频)

子句过滤时机能用的表达式作用对象
WHERE分组前普通列、表达式原始行
HAVING分组后聚合函数、分组列聚合结果

✅ 3. 工作流程

  1. FROM 取表
  2. WHERE 先过滤原始行
  3. GROUP BY 分组
  4. 对每组算聚合值
  5. HAVING 再按聚合值筛组
  6. SELECT 输出最终列
  7. ORDER BY 排序(如有)

✅ 4. 示例表:orders

order_idcustomeramount
1Alice100
2Bob200
3Alice150
4Bob50
5Carol300

🔍 需求:找出 总消费 ≥ 250 的客户

SELECT customer,SUM(amount) AS total
FROM   orders
GROUP  BY customer
HAVING SUM(amount) >= 250;

结果:

customer | total
---------|-------
Alice    | 250
Carol    | 300
  • 先按 customer 分组,算每人总额
  • 再用 HAVING 筛掉 Bob(总额 250 以下)

✅ 5. 常见场景

  • 统计部门平均工资高于 1 万的部门
  • 找出销量超过 100 件的商品
  • 查询下单次数 ≥ 3 次的用户

✅ 6. 易错点

  • 非聚合列 放进 HAVING 会报错(除非该列同时出现在 GROUP BY 里)
  • 忘记先 GROUP BY → 语法错误
  • WHERE 写聚合条件 → 也报错

✅ 7. 一句话总结

HAVING 就是 “分组后再筛组” 的专用工具,和 GROUP BY 形影不离,专门处理聚合结果。

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

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

相关文章

【Halcon 】Halcon 实战:如何为 XLD 模板添加极性信息以提升匹配精度?

Halcon 实战:如何为 XLD 模板添加极性信息以提升匹配精度? 在使用 Halcon 进行模板匹配时,我们通常有两种方式创建模板: 基于图像灰度(CreateScaledShapeModel)基于轮廓 XLD(CreateScaledShapeM…

grafana/lock-stack 日志 Pipeline 配置

前言 本文使用的是 grafana/loki-stack chart 抓取的 k8s 日志。其他 chart 配置都差不多。 日志问题 docker 容器运行时 pod 内原始日志 [cpu-4] Hello, 第 9788 次报时,时间:2025-08-01T06:35:420000 {"HOSTNAME":"cpu-4",&qu…

appium2.0+之PointerActions详解

以下内容在 夜神模拟器 上进行。 一、应用场景 一些针对手势的操作,比如滑动、长按、拖动等。可以将这些基本手势组合成一个相对复杂的手势。 二、使用步骤创建触摸输入设备(模拟手指操作) touch_input PointerInput(interaction.POINTER_TO…

Java HTTPS 请求失败排查与证书导入全过程

文章目录Java HTTPS 请求失败排查与证书导入全过程问题背景问题初步分析排查过程查看目标地址证书导入证书验证证书是否导入成功重启应用进一步验证:是否真的是证书问题?1. 浏览器访问2. 抓包工具验证(如 Charles、Wireshark)补充…

android APT技术

1,背景 对于注解的使用,想必大家都不陌生,它出现在我们的源码中,以及大部分框架中,比如ButterKnife、Arouter、Retrofit,但它们是有区别的,其中前2个是编译时注解,最后一个是运行时注…

MySQL 和 PostgreSQL综合比对分析汇总

面对大数据项目或其它类型项目中,面对关系型数据库选择一直是很总要的一点,本文针对MySQL 和 PostgreSQL进行综合比对分析汇总,内容仅供参考。MySQL 和 PostgreSQL 是两款主流的开源关系型数据库(RDBMS),但…

Linux---make和makefile

一、基本概念1.是什么make是一条命令,makefile是一个文件2.对应在vs中按一下f5就能运行代码,在Linux中make就相当于f5,使用makefile来封装从而实现我, 想要的功能3.使用①创建makefile文件②编辑makefile解释:test.exe…

【DAB收音机】DAB收音机协议及其他资料汇总

目录[ETSI DAB标准协议文档](https://www.etsi.org/standards)Other DAB资料DAB收音机相关的专利DAB收音机相关的期刊及学位论文DAB开源项目代码仓库qt-dab工具welle.io工具dablin工具【eti广播工具】⚙️ 项目对比与选型建议Other 收音机资料Other资料ETSI DAB标准协议文档 官…

RabbitMQ的特点和消息可靠性保障

掌握RabbitMQ的核心知识,需从其特点和消息可靠性保障(尤其是消息丢失解决方案)两方面入手,以下是详细说明: 一、RabbitMQ的核心特点 RabbitMQ是基于AMQP(Advanced Message Queuing Protocol)协议…

项目升级啦

公司要新做一个医疗行业的业务,经过业务端和产品端的评估该业务与公司已有的产品线关联不大,用户后续也不想在老系统那台老爷车上继续使用,话说老系统到现在差不多10年了,中间经历过的前后端开发者形形色色,维护者换了…

Android中页面生命周期变化

一、Activity切换的生命周期变化(A启动B)1. 标准流程(B完全覆盖A)完整生命周期路径:Activity A:onPause():失去焦点,仍部分可见onStop():完全不可见(当B完全覆…

自动驾驶控制算法——PID算法

自动驾驶控制算法——PID算法 文章目录自动驾驶控制算法——PID算法一、PID 是什么?二、PID 原理2.1 **比例环节(P)**2.2 **积分环节(I)**2.3 **微分环节(D)**2.4 特点总结2.5 案例分析 —— 小…

Spring Boot 异步执行方式全解析:@Async、CompletableFuture 与 TaskExecutor 对比

在 Spring Boot 开发中,异步执行是提升系统性能的重要手段,尤其适用于处理耗时操作(如日志记录、邮件发送、数据同步等)。本文将深入对比 Spring Boot 中三种主流的异步实现方式 ——Async注解、手动CompletableFuture和直接使用T…

高效微调2:Prompt-Tuning原理与实战

高效微调2:Prompt-Tuning原理与实战 Prompt-Tuning原理介绍 代码 Prompt-Tuning原理介绍 Prompt-Tuning Prompt-Tuning的思想:冻结主模型全部参数,在训练数据前加入一小段Prompt,只训练Prompt的表示层,即一个Embedding模块。其中,Prompt.又存在两种形式,一种是hard promp…

使用BART模型和T5模型实现文本改写

BART模型BART(Bidirectional and Auto-Regressive Transformers)是由 Facebook AI Research(FAIR)在 2019 年提出的序列到序列(seq2seq)预训练模型,论文发表于《BART: Denoising Sequence-to-Se…

电商前端Nginx访问日志收集分析实战

使用FileBeatLogstashES实现分布式日志收集 在大型项目中 ,往往服务都是分布在非常多不同的机器上 ,每个机器都会打印自己的log日志 但是 ,这样分散的日志 ,本来就无法进行整体分析。再加上微服务的负载均衡体系 ,甚至…

TwinCAT3示例项目1

目录一、需求分析二、程序编写1.实现1盏灯的自控(IF、TOF)2. 添加模式控制(Case、枚举)3. 添加多盏灯(FOR、数组)4. 添加多组灯(二维数组)END项目结合了,FB,I…

如何在 VMware Workstation 虚拟机中利用 Nvidia 显卡的硬件加速功能

这篇文章详细介绍了如何在 VMware Workstation 虚拟机中利用 Nvidia 显卡的硬件加速功能,通过 PCI 设备直通(Pass-Through)技术将显卡分配给虚拟机使用: 在 VMware Workstation 虚拟机中利用 Nvidia 显卡的硬件加速功能 1. 检查…

设计模式(二十二)行为型:策略模式详解

设计模式(二十二)行为型:策略模式详解策略模式(Strategy Pattern)是 GoF 23 种设计模式中最具实用性和广泛影响力的行为型模式之一,其核心价值在于定义一系列算法或行为,并将每个算法封装到独立…

AI+向量化

要理解 Java 如何结合 AI 与向量化,我们需要从向量化的核心概念、AI 中向量化的作用、Java 生态中的实现工具以及具体实践案例四个维度展开。以下是详细解析:一、核心概念:向量化与 AI 的关系向量化(Vectorization)是将…