我有这样一个表格:
a b
1 23
1 2
1 7
2 9
2 11
我想从一个"GROUP BY a"的查询结果中选择第一行(顺序不重要),结果应该是:
a b
1 23
2 9
我正在使用 SQL SERVER 2008,如何编写此查询?
我有这样一个表格:
a b
1 23
1 2
1 7
2 9
2 11
我想从一个"GROUP BY a"的查询结果中选择第一行(顺序不重要),结果应该是:
a b
1 23
2 9
我正在使用 SQL SERVER 2008,如何编写此查询?
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
MIN
或MAX
函数(你的示例等同于只选择MAX(b)
)。当然,对于更多的列,使用其他方法则更加合理。 - Damien_The_Unbeliever
(1,2),(2,11)
也可以接受,因为顺序无关紧要?(或任何其他任意的b
值每个a
) - Martin Smith