我有一个看起来有点像这样的表:
user_id item_id bid_amount
5 12 22
6 12 47
7 12 40
6 14 55
我正在尝试获取每个项目的最高出价以及属于该出价的 user_id。我目前的尝试:
select user_id, max(bid_amount) from bids group by item_id;
失败得很厉害。我认为它只是组中第一行的 user_id - 是否有一个查询可以获取我想要的数据?
最佳答案
SELECT user_id, item_id, bid_amount FROM bids
WHERE (item_id, bid_amount) IN (
SELECT item_id, MAX(bid_amount) FROM bids GROUP BY item_id
)
在线查看它:sqlfiddle
关于mySQL:使用 'max' 时获取行的其余数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10507827/