MySQL必知必会-第13章 分组数据(重要-涉及子句的计算逻辑顺序)

分组数据

1.创建分组 Group By

-- 1.先进行分组,在进行组内汇总(聚合)
-- with rollup 关键字可以汇总所有组的数据
select count(*) from 表名 as 表别名 
group by 列名 with rollup;

1)group by 后面可以包含多个列,对分组进行嵌套;
2)如果嵌套分组,数据将在最后规定的分组上进行汇总(聚合);
3)group by 子句中每个列都必须是检索列或有效的表达式【不能是聚合函数】
4)Group by 子句必须使用于select子句相同的表达式;
5)分组列中具有NULL值的将被归为一个分组;
6)group by 必须触红线在where子句之后;order by子句之前;
【需要先进行分组,然后在组内进行select where子句的过滤,最后进行排序】

2.过滤分组 having

【作用/与where语句的区别】
1)HAVING 关键字是用来过滤分组的,可以过滤掉不符合HAVING子句所要求的条件的分组;
2)而where子句是用来过滤行的;
3)将每条记录视作一个单独的分组,则HAVING子句可以完成where子句能完成的全部功能;
在这里插入图片描述
【计算顺序】
1)先计算select from where子句,进行记录(行)过滤;
2)再计算Group By子句,进行分组;
3)之后计算HAVING子句,进行分组过滤;
4)然后计算Order By子句,进行组件某聚合值的排序;
5)最后计算LIMIT子句,设置检索的行数;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值