GROUP BY语句
GROUP BY子句用于对查询结果进行分组,通常与聚合函数一起使用。
GROUP BY子句的基本语法为:
SELECT column1, aggregation_function(column2)
FROM table_name
GROUP BY column1;
GROUP BY子句将查询结果按指定的列(一个或多个)进行分组聚合。首先,系统会对指定的列值进行分组,然后对每个组执行聚合函数计算。
GROUP BY子句的主要特点有:
-
查询结果的分组依据列(GROUP BY后指定的列)必须在SELECT子句中指定。
-
除了分组依据列和聚合函数计算出的列,其他列不允许包含在SELECT子句中。
-
GROUP BY子句中指定的列必须是查询表中的列。
-
如果查询没有GROUP BY子句,整个查询结果被视为一个组。
-
GROUP BY后指定的列会按字典顺序对结果进行分组。
-
NULL值会被单独分为一组。
-
可以包含HAVING子句对分组进行过滤。
示例:
SELECT department_id, AVG(salary)
FROM employees
GROUP BY department_id;
SELECT job_id, MAX(salary)
FROM employees
GROUP BY job_id
HAVING MAX(salary) > 10000;
SELECT manager_id, COUNT(*)
FROM employees
WHERE manager_id IS NOT NULL
GROUP BY manager_id;
GROUP BY子句用于对查询结果进行分组聚合,它与聚合函数一起使用可以对数据进行统计和分析。GROUP BY子句的使用会丢失查询结果中的详细信息,并将这些详细信息转换为统计信息,这在数据分析和决策支持系统中非常有用。
要充分利用GROUP BY子句,需要理解:
-
与SELECT子句和HAVING子句的逻辑关系。分组依据列必须在SELECT中指定,HAVING用于过滤分组。
-
NULL值的处理方式。NULL会被单独分为一组。
-
不同聚合函数的工作机制和使用场景。
-
可以包含多个分组依据列,系统会基于所有列的值进行分组。
GROUP BY子句是SQL语句中一个重要且强大的子句,它与聚合函数一起使用可以实现对数据的统计和分析。要熟练使用GROUP BY子句,需要对相关语法和概念有比较深入的理解,同时也需要在实践中大量练习,通过不同的CASE例不断掌握其技巧。
GROUP BY子句的熟练运用,可以大大增强SQL语句的分析能力,产生更加准确和深入的统计信息。这在构建数据仓库和决策支持系统中具有重要作用。GROUP BY子句作为SQL语句的必要组成部分,是开发人员和数据分析人员必备的技能。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南