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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值