mySQL:使用'max'获取行的其余部分

时间:2012-05-08 23:11:53

标签: mysql

我有一张看起来有点像这样的表:

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 - 是否有一个查询可以获取我想要的数据?

1 个答案:

答案 0 :(得分:3)

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