技术文摘
SQL 中 group by 和 having 用法总结
2025-01-15 03:50:04 小编
SQL 中 group by 和 having 用法总结
在 SQL 数据库操作中,group by 和 having 是两个重要且常用的关键字,掌握它们的用法对于数据的查询和分析至关重要。
group by 子句主要用于对查询结果进行分组。它允许我们根据一个或多个列的值将结果集划分为多个组,从而可以对每个组进行聚合操作,比如计算每组的总和、平均值、计数等。例如,在一个存储员工信息的表中,有部门、薪资等字段,若想统计每个部门的员工人数,就可以使用 group by 子句。示例代码如下:
SELECT department, COUNT(*)
FROM employees
GROUP BY department;
上述代码按照 department 字段对员工进行分组,然后统计每个组中的员工数量。通过 group by,我们能够清晰地了解每个部门的员工规模。
having 子句则是用于对分组后的结果进行筛选。与 where 子句不同,where 是在分组之前对单个行进行筛选,而 having 是在分组之后对整个组进行条件过滤。例如,还是在员工表中,在统计每个部门的平均薪资后,只想显示平均薪资大于 8000 的部门。代码如下:
SELECT department, AVG(salary)
FROM employees
GROUP BY department
HAVING AVG(salary) > 8000;
这段代码先按照部门进行分组,计算每个部门的平均薪资,然后通过 having 子句筛选出平均薪资大于 8000 的部门。
需要注意的是,在使用 group by 和 having 时,select 子句中出现的非聚合列必须包含在 group by 子句中。这是因为在分组后,每个组只返回一行结果,非聚合列必须有明确的取值,否则会导致结果不明确。
group by 和 having 是 SQL 中强大的工具,group by 帮助我们将数据按照特定条件分组并进行聚合操作,having 则进一步对分组后的结果进行筛选,使我们能够获取到更有针对性和价值的数据信息,在数据库开发和数据分析工作中发挥着重要作用。
- 微服务:从代码至 K8s 部署全涵盖
- 2022 年 Python 预测茅台股票涨跌之法
- Go 版本控制的历史变迁:从 SVN 到 Git
- Jpa 中一对多的玩法
- 为何 Python 大数据必用 Numpy Array ?
- vivo 服务端监控的架构设计及实践
- Aeraki 教程:度量指标查看方法
- Goroutine 与 Panic 相遇会如何?
- go-monitor:服务质量统计与分析告警工具
- 源码控制中维护点文件的技巧之我见
- 元宇宙中 VR/AR 技术的研究图谱
- Nobara:专为游戏打造的非官方 Fedora Linux 35 衍生版
- PC 的电源适配器与设计模式中的适配器模式,你了解吗
- 怎样优雅达成多维数组
- Apache Kafka 中的事务:Kafka 技术