是否可以计算用户的所有预订,并且仅获得用户具有超过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
Run Code Online (Sandbox Code Playgroud)
我可以添加到此查询中说WHERE orders> = 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;
Run Code Online (Sandbox Code Playgroud)
(我认为mysql允许你在HAVING子句中使用列别名... postgres没有,所以你必须使用HAVING COUNT(r.reservation_id) >= 5)