3

次のようなテーブルがあります。

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 だけだと思います-必要なデータを取得する単一のクエリはありますか?

4

1 に答える 1

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

于 2012-05-08T23:13:50.137 に答える