2014-06-06 74 views
0

我有一個表「產品」是具有列「名」和價格」一組行的最大價值。有多種價格相同的名稱。該表看起來像選擇行與SQL

shampoo 7 
shampoo 10 
shampoo 8 
bread 1 
bread 1.5 
water 0.5 
water 0.7 
...... 

我想最大價格的行我試過

select name, price 
from products 
group by name 
having max(price); 

注:。我的問題是沒有,但我想知道的解決方案背後的邏輯感謝

+0

您能否看到。 http://stackoverflow.com/questions/3491329/group-by-with-maxdate –

+0

可能重複[SQL只選擇列上最大值的行](http://stackoverflow.com/questions/7745609/ sql-select-only-rows-with-max-value-on-a-column) – Strawberry

+0

您希望整體或每個產品的最高價格? (首先從產品中選擇最大(價格),第二種:從產品組中按名稱選擇名稱,最大(價格))。對於第一種情況,您可以通過從產品中選擇*獲得最大的行,其中price =(從產品中選擇max(price)) – wumpz

回答

3

創建一個組或使用爲每個不同的名稱劃分行。然後,您可以選擇name(因爲組中的每一行都具有相同的名稱)。該組有很多價格,您可以使用聚合函數max()來檢索組的最高價格。

select name 
,  max(price) as MaxPrice 
from Products 
group by 
     name 
+0

感謝您提供全面的答案。 –