【问题标题】:Get Highest values on Diffrent ID's on the same table?在同一张桌子上获得不同 ID 的最高值?
【发布时间】:2011-08-24 22:48:37
【问题描述】:

我有出价表,每个出价都有 Amount 和 AuctionID。

我想从每个 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.4443.7842.3321.27

“最高”是我认为可能有用的标志,但它仍然没有用。 我想看看是否有不使用标志的方法。

【问题讨论】:

  • 为什么不返回42.33 for AuctionId= #2

标签: sql sql-server select sum


【解决方案1】:

一个简单的 group by 子句就可以解决问题:

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

【讨论】:

    【解决方案2】:
    SELECT AuctionId, MAX(Amount) FROM TableName GROUP BY AuctionID
    

    【讨论】:

    • SELECT AuctionId, MAX(Amount), (SELECT SUM(Amount) FROM Auctions WHERE Auctionid = A.AuctionId) AS GrandTotal FROM Auctions A GROUP BY Auctionid
    【解决方案3】:

    要获得所有最高出价:

    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
    

    【讨论】:

    • 我猜你必须添加一个别名 - 已更新(抱歉,我没有要检查的 MySQL 实例)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-06
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多