MySQL必知必会 学习笔记 第十三章 分组数据
按年龄分组计算出每个年龄的人数:
分组允许将数据分为多个逻辑组,以便能对每个组进行聚集计算。
GROUP BY子句中可以包含任意数目的列:
GROUP BY子句中列出的每个列都必须是检索列或有效的表达式(不能是聚集函数),如果SELECT中有表达式,则在GROUP BY子句中必须使用相同表达式,但我测试时不需要:
GROUP BY中不能使用别名,但我测试时可以:
除聚集计算语句外,SELECT语句中的每个列都必须在GROUP BY子句中给出,但我测试时不用:
此时childno列值为该分组中的某一个列值。
分组时,所有的NULL值为一组。
GROUP BY子句必须出现在WHERE子句后,ORDER BY子句前。
WITH ROLLUP可放在GROUP BY子句的最后一个列名后,效果为按GROUP BY的顺序多次生成聚集行:
HAVING可过滤分组,它也支持所有的WHERE操作符,目前为止所有的WHERE都能用HAVING代替:
过滤分组:
WHERE在数据分组前进行过滤,HAVING在数据分组后进行过滤。
WHERE在分组前过滤结果:
用GROUP BY分组的数据经常是按分组列顺序输出的,但这并不是SQL规范所要求的。
ORDER BY语句可位于GROUP BY的HAVING之后给分组排序。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)