首页 > 其他 > 详细

group by having 实例

时间:2015-10-13 13:37:28      阅读:225      评论:0      收藏:0      [点我收藏+]

原文参考:http://www.51ou.com/browse/msyql/43081.html

 

having是对组进行过滤。where是对行进行过滤。        ***  理解这个至关重要  ***

执行顺序: where > 聚合函数 > having

一个思维误区:
要查找5个部门中工资最高的员工,执行语句(错误):

select id,name,salary from employee group by dept having salary=max(salary);

我的思路是先按照部门进行分组,然后以salary最高作为条件来查找这个员工。
显然这个想法是错误的,用having子句是用来***过滤分组***的,即要留下哪个分组或者排除哪个分组,而不是直接得到某一行结果。

正确的sql语句:

select id,name,salary form employee group by dept order by salary desc;

group by having 实例

原文:http://www.cnblogs.com/firstForEver/p/4874199.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!