码迷,mamicode.com
首页 > 其他好文 > 详细

group by having 实例

时间:2015-10-13 13:39:19      阅读:188      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!