我的桌子是这样的:
a b 1 23 1 2 1 7 2 9 2 11
我想从“ GROUPBY a”查询中选择第一行(顺序不重要) ,结果应该是
a b 1 23 2 9
我正在使用 SQLSERVER2008如何为此写查询?
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将是足够的。
b
SELECT a, b = MIN(b) FROM YourTable GROUP BY a