2012-01-05 113 views
1

例如,SQL - 查找具有相同值的不同名称

在“汽车”表中,您有'法拉利'出现4次。而'兰博基尼'和'福特'出现4次。

您如何通过SQL指令显示'Car'中与法拉利具有相同价值/数量的所有车辆?

任何帮助表示赞赏。

感谢

+0

你是什么按价值/金额计算?它出现的次数? – StevieG 2012-01-05 13:08:54

回答

0
select brand from car 
group by brand 
having count(*) = (select count(*) from car where brand = 'Ferrari') 

行,太慢了...这是为老板正在添加:-)

+0

谢谢,帮助! – Brian 2012-01-05 13:42:49

+0

我很高兴它做到了,但Li0liQ [here](http://stackoverflow.com/a/8743058/1127872)与同样的答案更快,所以接受可能应该让他公平 – voidengine 2012-01-05 14:26:15

-1
SELECT COUNT(make) FROM Car WHERE make = 'Ferrari' 
+0

不回答问题 – 2012-01-05 13:14:07

+0

你说得对,我误解了这个问题。 – cha0site 2012-01-05 13:17:40

4
SELECT 
    Name 
FROM 
    Cars 
GROUP BY 
    Name 
HAVING 
    Count(Name) = (
    SELECT 
     Count(*) 
    FROM 
     Cars 
    WHERE 
     Name = "Ferrari" 
    ) 
4

这个怎么样

with a as 
(
select make, count(*) tot from car 
group by make 
) 
select * from a where a.tot = (select tot from a where make='Ferrari'); 
+0

这是在Oracle的方式... – 2012-01-05 13:12:21

+0

也应该为SQL Server工作。 – 2012-01-05 13:14:28