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之后给分组排序。

在这里插入图片描述
在这里插入图片描述

posted @   epiphanyy  阅读(7)  评论(0编辑  收藏  举报  
编辑推荐:
· 从 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)
点击右上角即可分享
微信分享提示