views:

581

answers:

2

I have a table with one numeric value (n) and three string values (a,b,c). How do I query this table so that I get only distinct values of (a,b,c) and if there are duplicates, take the maximum of the corresponding set of n values?

+4  A: 
select max(n), a, b, c
from mytable
group by a, b, c
Chris Lively
Arg! Beat me to it. ;-)
Jon Ericson
+3  A: 

Use GROUP BY:

select a, b, c, max(n) 
from table 
group by a, b, c;

This will show only unique or distinct sets of a, b, c and show the maximum n found in that set.

MAX is an aggregate function designed for use with GROUP BY. Other potentially useful aggregate functions include MIN, AVERAGE, and COUNT.

Jon Ericson
+1 because you are also right.
Chris Lively