Sql 服务器从组中选择第一行

我的桌子是这样的:

a          b
1          23
1          2
1          7
2          9
2          11

我想从“ GROUPBY a”查询中选择第一行(顺序不重要) ,结果应该是

a          b
1          23
2          9

我正在使用 SQLSERVER2008如何为此写查询?

119134 次浏览
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

http://msdn.microsoft.com/en-us/library/ms186734.aspx

如果正如您所指出的,顺序并不重要,任何 聚合函数b将是足够的。

使用 MIN 的例子

SELECT a, b = MIN(b)
FROM   YourTable
GROUP BY
a