簡體   English   中英

SQL語句僅選擇其中一列中包含最大值的行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM