2010-06-21 74 views
1

我有一个表称为游戏机什么是正确的SQL获得 “最常用的查询”

ID
car_id
距离

我还有一个表汽车

id
name

我想运行返回每辆车的大多数驱动器的查询(上车,我已经不止一次摆脱以上)

,所以我要寻找的结果是这样的(以降序顺序返回):

福特10
BMW 8
法拉利5
吉普4

我有:

select car_id, COUNT(car_id) as Cid  
from Rides 
group by car_id 
order by cid desc 

但我无法弄清楚如何消除只有1骑的物品。

回答

4

要过滤派生列,你可以使用一个HAVING子句。

select car_id, COUNT(car_id) as Cid  
from Rides 
group by car_id 
having Cid > 1 
order by cid desc 

OR

having COUNT(car_id) > 1 

如果您的SQL的特定品牌不喜欢HAVING子句使用别名。

+0

我在这个“关键字附近有错误的语法”中收到错误。“ – leora 2010-06-21 00:37:10

+0

对不起,有条款的顺序错了。有顺序之前。 (编辑答案) – 2010-06-21 00:38:56

+0

现在得到另一个错误:“无效的列名'Cid'”,如果我改变它有HAVING COUNT(car_id)> 1,它的工作原理 – leora 2010-06-21 00:53:21

0

功课?通过car_id

,尝试按...

+0

的问题是如何删除的项目,仅出现一次 – leora 2010-06-21 00:20:08

+0

HAVING确实对总的比较。 – Randy 2010-06-21 00:35:50

+0

通常我尽量不直接'回答'作业 - 而是提供指导。谢谢。 – Randy 2012-08-23 11:50:07

1

看一看HAVING子句 - 双关语不打算