sql有子句问题

时间:2016-10-10 23:06:16

标签: mysql sql

问:仅在2002年检索每个品牌生产的模型数。按make排序结果。 Exclude通过使用having子句使得只生成少于5个模型的人。

我有什么:

select count(model) from vehicle where year="2002" order by make having count(model) > 5

这给having子句带来了错误。有人知道吗?

1 个答案:

答案 0 :(得分:2)

我想你可能想要:

select make, count(*)
from vehicle
where year="2002"
group by make
having count(*) >= 5
order by make

让我带你走过去。在select语句中,您需要make,然后计算每个make的记录数,表示为count(*)。你正在从2002年的车辆行中挑选。那部分你是对的。然后你需要使用group by语句。如果您没有将要计算的记录组合在一起,则无法计算任何内容。对于您,将记录与相同的品牌组合在一起。然后,您可以指定每个组至少应有5条记录。

这一点非常重要 - 必须使用WHERE子句在GROUP BY语句之前修改表。对表进行分组后,必须使用HAVING,但如果没有GROUP BY,则无法使用HAVING。