Frantisek
Frantisek

Reputation: 7693

What query do I run to select the HIGHEST value for EACH group of values in an SQL table?

I have a table of bids (like an eBay bids, for example):

bid_id | bid_from_user | bid_for_auction | bid_price
1      | 150           | 1               | 20
2      | 453           | 1               | 30
3      | 42            | 1               | 50
4      | 12            | 2               | 12
5      | 60            | 2               | 20

I need to select each bid_for_auction only once with its highest current bid, so my result should look like this:

bid_for_auction | bid_price
1               | 50
2               | 20

How would I go about doing this?

Upvotes: 0

Views: 96

Answers (4)

kuriouscoder
kuriouscoder

Reputation: 5582

This should do the trick:

SELECT
 `bid_for_auction`,
 MAX(`bid_price`)
FROM `bids`
GROUP BY `bid_for_auction`

Upvotes: 2

Dan
Dan

Reputation: 2195

SELECT bid_for_auction,MAX(bid_price) FROM bids GROUP BY bid_for_auction

Upvotes: 1

Dustin Laine
Dustin Laine

Reputation: 38533

SELECT bid_for_auction, MAX(bid_price)
FROM bids
GROUP BY bid_for_auction

Upvotes: 2

Jason McCreary
Jason McCreary

Reputation: 73031

Use GROUP BY

SELECT bid_for_auction, MAX(bid_price) AS bid_price
FROM bids GROUP BY bid_for_auction;

Upvotes: 3

Related Questions