我正在开发一个用于拍卖的数据库,我希望获得所有中标的ID。困难的部分是从返回2列的子查询中提取它:id和amount。
它看起来像这样:
SELECT id FROM Bid WHERE id IN (Select ID,max(amount) FROM Bid group by bid.idAuction)
我可以以某种方式从子查询中提取一列吗?执行此任务的任何其他sugestions也都有帮助。
谢谢!
答案 0 :(得分:2)
您的查询已关闭,但您需要相关子查询才能使其正常工作:
SELECT b.id
FROM Bid b
WHERE b.amount = (SELECT max(amount)
FROM Bid b2
WHERE b2.idAuction = b.idAuction
);
答案 1 :(得分:1)
SELECT id, maxBid.MAmount, Bid.Amount
FROM Bid
INNER JOIN (Select ID,max(amount) mamount FROM Bid group by bid.idAuction) MaxBid
on MaxBid.ID = Bid.ID
RDBMS和SQL在基于SET的操作中运行最有效。因此,在这种情况下,我们会根据ID和最高出价生成一组。然后我们将其加入到基本集中,以便只对最高出价进行调整。