我需要帮助才能找到以下练习的解决方案: 我有这张桌子:
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;
但它不能正常工作,我不知道该怎么做!如果你能帮助我,我会更感谢!
答案 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上查看。