where 和 having 都是过滤操作,在句法上都是一致的。 where 是过滤行,having 是过滤组。
此例只能使用having
select Cust_Id,count(*) As Order
from orders
group by Cust_Id having count(*) >= 2
此处需要过滤个数大于等于2以上的上所有组,所以只能用having
where 和 having 联合使用
select Cust_Id,count(*) As Order
from orders
where Price >= 10 //先过滤出单价大于10的订单,再进行分组
group by Cust_Id
having count(*) >= 2