当前位置: 首页 > news >正文

掌握聚合函数:COUNT,MAX,MIN,SUM,AVG,GROUP BY和HAVING子句的用法,Where和HAVING的区别

对于Java后端开发来说,必须要掌握常用的聚合函数:COUNT,MAX,MIN,SUM,AVG,掌握GROUP BY和HAVING子句的用法,掌握Where和HAVING的区别:

✅ 一、常用聚合函数(聚合函数用于统计汇总数据)

聚合函数作用示例
COUNT()统计记录条数SELECT COUNT(*) FROM 表名
MAX()求最大值SELECT MAX(价格) FROM 商品
MIN()求最小值SELECT MIN(价格) FROM 商品
SUM()求总和SELECT SUM(数量) FROM 订单
AVG()求平均值SELECT AVG(价格) FROM 商品

✅ 二、GROUP BY 子句(用于分组统计)

GROUP BY 将数据按照某个字段进行分组,并配合聚合函数使用。

示例:

SELECT 部门, AVG(薪资)
FROM 员工
GROUP BY 部门;

含义:按“部门”分组,统计每个部门的平均薪资。


✅ 三、HAVING 子句(对分组后的数据进行过滤)

  • WHERE 是在 分组前 对原始数据进行过滤。
  • HAVING 是在 分组后 对聚合结果进行过滤。

示例:

SELECT 部门, AVG(薪资) AS 平均薪资
FROM 员工
GROUP BY 部门
HAVING AVG(薪资) > 8000;

含义:先按部门分组,再筛选平均薪资大于8000的部门。


✅ 四、WHERE 和 HAVING 的区别总结:

对比项WHEREHAVING
作用阶段分组前(原始数据)分组后(聚合结果)
是否能用聚合函数❌不能✅可以
示例WHERE 薪资 > 5000HAVING AVG(薪资) > 8000

✅ 五、综合示例

假设我们有一个员工表 employees

idnamedepartmentsalary
1张三IT8000
2李四HR6000
3王五IT9000
4赵六HR5000
5孙七Sales7000

查询平均工资大于7000的部门及其平均工资:

SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 7000;

http://www.xdnf.cn/news/634411.html

相关文章:

  • TIGER - 一个轻量高效的语音分离模型,支持人声伴奏分离、音频说话人分离等 支持50系显卡 本地一键整合包下载
  • 【Android】非System用户下Persist应用不自动拉起
  • 破解C/C++内存分配与管理:内存对象模型硬核剖析
  • LeetCode-图论-岛屿数量+腐烂的橘子
  • Leetcode 3103. 查找热门话题标签 II
  • 仓鼠找sugar--lca+图论判断点在路径
  • LangChain02-Agent与Memory模块
  • git子模块--命令--列表版
  • 机器学习——支持向量机SVM
  • 类欧几里得算法(floor_sum)
  • uni-app学习笔记十四-vue3中emit的使用
  • Lua 脚本在 Redis 中的运用-23(Lua 脚本语法教程)
  • 计算机视觉中的可重复性:深入案例分析与Python代码实现
  • 【MySQL成神之路】MySQL函数总结
  • 【寻找Linux的奥秘】第八章:进程控制
  • 我的第1个爬虫程序——豆瓣Top250爬虫的详细步骤指南
  • 云原生安全:网络协议TCP详解
  • GO 语言进阶之 时间处理和Json 处理
  • 2025.05.23 Axure 动态面板学习笔记
  • Python经典算法实战
  • 股票程序化交易-使用python获取新浪财经期货行情数据
  • 历年吉林大学保研上机真题
  • 历年复旦大学保研上机真题
  • React整合【ECharts】教程003:关系图的构建和基本设置
  • 项目难点 与 缓存
  • 制作一枚可随身携带的Linux服务器虚拟机
  • Linux核心技术:Linux文件系统与bootFS/rootFS
  • 高级特性实战:死信队列、延迟队列与优先级队列(二)
  • 6个月Python学习计划 Day 4
  • MySQL#秘籍#一条SQL语句执行时间以及资源分析