2011-05-13 57 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

相关问题