having使用的时机

 where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。

having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。

having 子句被限制子已经在SELECT语句中定义的列和聚合表达式上。通常,你需要通过在HAVING子句中重复聚合函数表达式来引用聚合值,就如你在SELECT语句中做的那样。例如:

SELECT A COUNT(B) FROM TABLE GROUP BY A HAVING COUNT(B)>2

 

如何记忆group by用法呢?

查什么分什么,不分等于表分;

意思就是查询什么字段就要按照什么字段进行分组,如果没有分组,那么就说明是按照整个表来分的,比如查询emp表中的工资,如果我们这么写:select avg(sal),deptno from emp group by deptno;就是前面的那句话,查询了deptno那么我们在后面就要按照deptno进行分组,如果我们是这么查询的:select avg(sal) from emp;那么我们没有进行分组那么就是默认的按照表来分组的,所以就是查询的整张表的平均值。

 

原文章链接: http://blog.csdn.net/tengdazhang770960436/article/details/6992272

 

转载于:https://www.cnblogs.com/lixiuyuan999/p/6370350.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值