MYSQL COUNT只显示X以上的结果

时间:2010-05-28 15:48:04

标签: mysql count

是否可以计算用户的所有预订,并且仅获得用户具有超过X预订的结果。这是我的代码,只计算所有用户的预订

SELECT 
    u.firstname, u.lastname u.email, COUNT(r.reservation_id) as orders
FROM 
    users AS u LEFT OUTER JOIN
    reservation AS r USING (user_id)
GROUP BY
    u.id

我可以添加到此查询中说WHERE orders> = 5 ??

希望你能提出建议

3 个答案:

答案 0 :(得分:5)

当你在聚合时,你想要使用'HAVING'而不是'WHERE':

SELECT 
    u.firstname, u.lastname u.email, COUNT(r.reservation_id) as orders
FROM 
    users AS u LEFT OUTER JOIN
    reservation AS r USING (user_id)
GROUP BY
    u.id
HAVING orders >= 5;

(我认为mysql允许你在HAVING子句中使用列别名... postgres没有,所以你必须使用HAVING COUNT(r.reservation_id) >= 5

答案 1 :(得分:0)

看一下可以让你做你想做的HAVING选项。

答案 2 :(得分:0)

不确定mysql是否有这个:但在Oracle中,

HAVING COUNT(*) > 5 

可用