需要帮助sql查询

时间:2013-10-29 16:15:26

标签: mysql sql

我需要帮助才能找到以下练习的解决方案: 我有这张桌子:

maker   model   type
E   2010    laptop
E   1013    pc
E   1012    pc
D   2007    laptop
D   1011    pc
D   1010    pc
D   1009    pc
C   3006    printer
C   3003    printer

我需要以至少700的速度找到至少2台不同计算机(Pc)的制造商。 我尝试了几个查询,但没有。你能告诉我如何写这个查询是真的吗?

速度栏位于另一个名为PC的表格中,我们有模型,速度,价格等等。我尝试过这样的一些查询:

select maker from product p
join pc pc on pc.model=p.model
where pc.speed>700
group by maker
having count(distinct p.model)>=2;

但它不能正常工作,我不知道该怎么做!如果你能帮助我,我会更感谢!

2 个答案:

答案 0 :(得分:2)

要返回Manufacturers of at least 2 different computers,您需要确保您计算的模型不同。否则你可以计算两次相同的模型(除非[maker,model]对中有唯一性)

select maker from table
where type = 'pc' and model >= 700      -- Should be Speed in this line?
group by maker
having count(distinct model) >= 2

答案 1 :(得分:1)

maker分组并相应地过滤结果:

SELECT   maker
FROM     my_table
WHERE    type = 'pc' AND model >= 700
GROUP BY maker
HAVING   COUNT(*) >= 2

sqlfiddle上查看。