是否可以计算用户的所有预订,并且仅获得用户具有超过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 ??
希望你能提出建议
利
答案 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
可用