2011-05-13 77 views
0

我有投標表,每個投標都有Amount和AuctionID。在同一張桌子上獲得不同ID的最高值?

我要總結/選擇每個AuctionID所有最高遞..

例子:

的結果:

SELECT AuctionID,Amount, Highest FROM Bids Where Burned=0 ORDER BY Amount DESC

AuctionID Amount Highest 
    1  44.4400  0 
    3  43.7800  0 
    2  42.3300  0 
    1  22.2200  0 
    4  21.2700  0 
    1  21.2600  0 
    4  21.2500  0 
    2  21.2400  0 
    1  12.6600  0 
    4  12.5200  0 

它應該返回44.44,43.78,42.3321.27

'最高'是我認爲可能有用的標誌,但它仍然沒有用處。 我想看看是否有一種方法可以不使用標誌。

+1

爲什麼不是爲AuctionId ='#2'返回'42.33'? – 2011-05-13 13:24:12

+0

@ahmet Thx固定:) – Danpe 2011-05-13 13:27:13

回答

1

要獲得所有最高出價:

Select auctionid, max(amount) from auctions group by auctionid 

,以獲得最高投標的總金額:

select sum(v1.max_amount) from 
(Select auctionid, max(amount) max_amount from auctions group by auctionid 
) as v1 
+0

在SUM方法中,我得到:'''附近的語法不正確。 – Danpe 2011-05-13 13:34:25

+0

我想你必須添加一個別名 - 更新(對不起,我沒有MySQL實例來檢查)。 – 2011-05-13 13:39:11

4

BY子句的簡單組將這樣的伎倆:

select AuctionID, MAX(Amount) 
from table 
group by AuctionID 
+0

謝謝,我如何彙總它? – Danpe 2011-05-13 13:34:41

4
SELECT AuctionId, MAX(Amount) FROM TableName GROUP BY AuctionID 
+0

謝謝,我如何彙總它? – Danpe 2011-05-13 13:35:59

+0

SELECT AuctionId,MAX(Amount),(SELECT SUM(Amount)FROM Auctions WHERE Auctionid = A.AuctionId)AS GrandTotal FROM Auctions A GROUP BY Auctionid – Karel 2011-05-13 15:09:29

相關問題