2014-02-21 54 views
1

我的表是Comapare值在同一列同桌

產品(製造商,型號,類型)

我只想選擇同一類型的類型和製造商,並且還具有計數模型大於一個。

的樣本數據:

maker    model   type 
------------------------------------- 
A     123  computer 
B     234   laptop 
B     345   laptop 
C     456   printer 
C     543   PC 

對上述樣本數據的答案是B和筆記本電腦,因爲製造商乙只生產筆記本電腦,也因爲儘管他製造的產品不止一個model.It不是壺同一類型,他只有一個模型。

回答

2

這很簡單。您正在尋找製造商與記錄計數> 1和不同類型的計數= 1:

select maker 
from product 
group by maker 
having count(distinct type) = 1 and count(*) > 1; 
+0

我想這兩個壺和類型,如果我有鍵入它顯示「列'Product.type'在選擇列表中是無效的,因爲它不包含在聚合函數或GROUP BY子句中。「如果我通過結果添加組中的類型變成錯誤。 – user1613360

+0

當您選擇只有_one_類型的製造商時,您可以選擇min(type)或max(type) - 它們當然是相同的 - 以顯示類型。 –

0

試試這個:

SELECT maker 
FROM Product 
GROUP BY maker, type 
HAVING COUNT(1) > 1