2013-10-29 119 views
-1

我需要幫助找到下面的練習的解決方案: 我有這個表:需要幫助的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 

,我需要在找到至少2臺不同的計算機(PC)製造商速度至少700. 我已經嘗試了幾個查詢,但沒有。你會告訴我,我必須寫這個查詢是真的嗎?

速度列是另一臺名爲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; 

但它不能正常工作,我不不知道該怎麼辦!如果你能幫助我,我會更加感恩!

+1

我看不到速度列。它是模型嗎? –

+0

鑑於您的樣本數據沒有關於速度的信息,我們無法爲您提供幫助。 –

+3

除了缺少速度信息之外,我們還希望至少查看一次您嘗試過的查詢。 – ethorn10

回答

2

爲了返回Manufacturers of at least 2 different computers您需要確保您計算的模型不同。否則,您可能會計數兩次相同的模型(除非在[製造商,型號]對中有唯一性)

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

組由maker和篩選結果相應地:

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

查看它sqlfiddle

+0

我忘了告訴我,我從另一張表中獲取PC信息,並從中獲取有關速度的信息。我加入這張表爲速度做一個where子句,但是當我嘗試在產品表中找到不同的模型和2以上時,我可能犯了一個錯誤! –