问:仅检索2002年每个品牌生产的车型数量。按品牌排序结果。Exclude使使用having子句只生成少于5个模型的人。
我所拥有的:
select count(model) from vehicle where year="2002" order by make having count(model) > 5
这给having子句带来了一个错误。有人知道吗?
最佳答案
我想你可能想要:
select make, count(*)
from vehicle
where year="2002"
group by make
having count(*) >= 5
order by make
让我带你穿过它。在select语句中,需要make,然后计算每个make有多少条记录,表示为count(*)。您正在从2002年的车辆行中选择。那部分你是对的。然后需要使用GROUPBY语句。如果你不把你想计数的记录组合在一起,你就什么也数不出来。对你来说,把同一个牌子的唱片组合起来。然后可以指定每个组至少应有5条记录。
这是一个重要的点—必须使用WHERE子句在GROUPBY语句之前修改表。一旦你对你的桌子进行分组,你必须使用HAVING,但是你不能使用HAVING而不使用group BY。
关于mysql - sql具有子句问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39968072/