基于两列只从SQL中获取一个条目?
我有一个问题如下基于两列只从SQL中获取一个条目?,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个问题如下 select B.BidderId, I.TrackingNumber, B.Amount from dbo.Items I inner join dbo.Bids B on I.SaleId = B.SaleId where I.item = '123' and I.IsRecycled = 0 基本上,它将吸引123项的所有投标人 示例结果 BidderID 1 => trackingnumber 1 => amount =>1000 BidderID
select B.BidderId, I.TrackingNumber, B.Amount
from dbo.Items I
inner join dbo.Bids B on I.SaleId = B.SaleId
where I.item = '123' and I.IsRecycled = 0
基本上,它将吸引123项的所有投标人
示例结果
BidderID 1 => trackingnumber 1 => amount =>1000
BidderID 1 => trackingnumber 1 => amount =>9200
BidderID 1 => trackingnumber 1 => amount =>8000
BidderID 2 => trackingnumber 1 => amount =>8200
BidderID 1 => trackingnumber 2 => amount =>50
正如您所看到的,bidderid为1的用户有多个出价金额。如何仅取bidder1最大金额值的行
结果应该是这样的(只考虑用户对项目的最大金额)
您可以尝试使用
row\u number()
您可以尝试使用
row\u number()
这是一个简单的聚合:
select B.BidderId, I.TrackingNumber, MAX(B.Amount)
from dbo.Items I
inner join dbo.Bids B on I.SaleId = B.SaleId
where I.item = '123' and I.IsRecycled = 0
GROUP BY B.BidderId, I.TrackingNumber
这是一个简单的聚合:
select B.BidderId, I.TrackingNumber, MAX(B.Amount)
from dbo.Items I
inner join dbo.Bids B on I.SaleId = B.SaleId
where I.item = '123' and I.IsRecycled = 0
GROUP BY B.BidderId, I.TrackingNumber
我错过什么了吗?具有1000、9200和8000的值。你说“只有最大数量”,但你想要的结果包括三个值中的最小值。我错过了什么吗?具有1000、9200和8000的值。你说“只有最大数量”,但你想要的结果包括三个值中的最小值。
select B.BidderId, I.TrackingNumber, MAX(B.Amount)
from dbo.Items I
inner join dbo.Bids B on I.SaleId = B.SaleId
where I.item = '123' and I.IsRecycled = 0
GROUP BY B.BidderId, I.TrackingNumber