[英]SQL statement to select only row containing max value in one of the columns
我有下表:
select * from [Auction].[dbo].[Bids]
我需要選擇具有最高BidValue的行。 當我做
SELECT bids.itemId, max(bids.[bidValue]) as HighestBid
FROM [Auction].[dbo].[Bids] bids
WHERE bids.itemId = 2
GROUP BY bids.itemId
我得到正確的行:
...但是當我添加其他兩個字段時,它不起作用(我知道由於Group by會顯示3行,但是如果我在group by中不包含這些字段,則會引發錯誤):
SELECT bids.itemId, max(bids.[bidValue]) as HighestBid, bids.submittedBy, bids.submittedOn
FROM [Auction].[dbo].[Bids] bids
WHERE bids.itemId = 2
GROUP BY bids.itemId, bids.submittedBy, bids.submittedOn
因此,我需要用itemId,HighestBid,submittedBy和SubmittedOn顯示一行。
任何幫助表示贊賞!
您可以簡單地執行以下操作:
select TOP 1 * from Bids where ItemId = 2 order by BidValue desc
嘗試這個
select top 1 * from Bids order by BidValue desc
如果多於一個最大值,則使用
select TOP (1) with ties *
from Bids where ItemId = 2 order by BidValue desc
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.