在sql语句中,where和having都可以用作条件筛选,区别是:
1) 如果与group by结合,where放在group by 前面,而having则放在group by 后面;
2)where子句中不能出现聚合函数,但是having可以,如下
select m.min,m.name from (
select min(fenshu) as min ,name from demo_stu
GROUP BY name
)m
where min >80
这是where作为条件筛选,需要使用子查询,而having则可以直接判断
select min(fenshu) ,name from demo_stu
GROUP BY name
HAVING min(fenshu)>80
在用having进行筛选时,不用给筛选的列取别名,会出错哦!