【MYSQL】Where和Having的区别

news/2024/11/22 1:56:06/

假设我们有一个 Orders 表,包含以下数据:

idcustomer_idamount
11100
21200
32150
43300
53250
6450
74100

1. 使用 WHERE 子句

目标

查询每个客户的总订单金额,并且只考虑订单金额大于 150 的订单。

查询
sqlSELECT customer_id, SUM(amount) AS total_amount
FROM Orders
WHERE amount > 150
GROUP BY customer_id;
解释
  • WHERE amount > 150:在分组前过滤掉订单金额小于或等于 150 的记录。
  • GROUP BY customer_id:按 customer_id 分组。
  • SUM(amount) AS total_amount:计算每个客户的总订单金额。
结果
customer_idtotal_amount
1200
3550

2. 使用 HAVING 子句

目标

查询每个客户的总订单金额,并且总金额大于 300 的客户。

查询
sqlSELECT customer_id, SUM(amount) AS total_amount
FROM Orders
GROUP BY customer_id
HAVING SUM(amount) > 300;
解释
  • GROUP BY customer_id:按 customer_id 分组。
  • SUM(amount) AS total_amount:计算每个客户的总订单金额。
  • HAVING SUM(amount) > 300:在分组后过滤掉总订单金额小于或等于 300 的客户。
结果
customer_idtotal_amount
3550

总结

在这里插入图片描述

  • WHERE 子句:在分组前过滤记录,适用于单个记录的条件,通常性能更好。
  • HAVING 子句:在分组后过滤记录,适用于分组后的聚合结果,性能可能稍差。

http://www.ppmy.cn/news/1548906.html

相关文章

postgresql.conf与postgresql.auto.conf区别

1. 简介 PostgreSQL 9.4版本开始引入postgresql.auto.conf 配置文件,作为postgresql.conf文件的补充,在配置文件格式上,它和postgresql.conf保持一致 1.1 postgresql.conf 这是一个静态的参数文件,包含了数据库服务器的基本配置…

2024年11月19日随笔

又是将近一个月没有写博客了,最近是真的很忙啊,11月9号去考了软考,是真的难啊,当时报名的自己是真不知道天高地厚啊,九月份报名,学了俩月,而且还是课余时间学的,根本没学多少东西&am…

从0开始学习Linux教程目录

从0开始学习Linux教程旨在帮助大家从0开始入手学习Linux,该教程将会一直更新。 Linux教程目录 从0开始学习Linux——简介&安装 从0开始学习Linux——搭建属于自己的Linux虚拟机 从0开始学习Linux——文本编辑器 从0开始学习Linux——Yum工具 从0开始学习Linux—…

element ui 搜索框中搜索关键字标红展示

示例如图 el-select上绑定remote-method属性 <el-select v-model"checkForm.type" filterable remote reserve-keyword :remote-method"remoteMethod" :loading"loading"><el-option v-for"item in options" :key"ite…

VRT: 关于视频修复的模型

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;编程探索专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年11月15日14点34分 神秘男子影, 秘而不宣藏。 泣意深不见, 男子自持重, 子夜独自沉。 论文链接 点击开启你的论文编程之旅…

用 Python 与 Turtle 创作属于你的“冰墩墩”!

用 Python 与 Turtle 创作属于你的“冰墩墩”&#xff01; &#x1f980; 前言 &#x1f980;&#x1f41e;往期绘画&#x1f41e;&#x1f40b; 效果图 &#x1f40b;&#x1f409; 代码 &#x1f409; &#x1f980; 前言 &#x1f980; 冰墩墩是2022年北京冬季奥林匹克运动会…

微店商品详情 API 接口如何获取

要获取微店商品详情API接口&#xff0c;你需要遵循以下步骤&#xff1a; 注册与认证&#xff1a;首先&#xff0c;你需要在微店平台完成注册&#xff0c;并进行必要的认证流程&#xff0c;以确保具备获取API接口的资格。 深入研究政策&#xff1a;仔细阅读并理解微店关于API使…

Angular中的ngOnchange()的汇总

ngOnChanges() 是 Angular 中的一个生命周期钩子函数&#xff0c;它在组件或指令的 输入属性&#xff08;Input()&#xff09;发生变化时被调用。这个钩子可以帮助你检测输入数据的变化&#xff0c;并对数据变化做出反应。 1.监听的对象 ngOnChanges() 监听的是 通过 Input() …