sql server select first row from a group
I have table like this:
a b
1 23
1 2
1 7
2 9
2 11
I want to select the first row(order does not matter) from a "GROUP BY a" query , the result should be
a b
1 23
2 9
I am using SQL SERVER 2008 how to write the query for this?
Solution 1:
select a,b
from (
select a,b,row_number() over(partition by a order by b desc) as roworder
from myTable
) temp
where roworder = 1
see http://msdn.microsoft.com/en-us/library/ms186734.aspx
Solution 2:
If as you indicated, order doesn't matter, any aggregate function on b
would be sufficient.
Example Using MIN
SELECT a, b = MIN(b)
FROM YourTable
GROUP BY
a