SQLSERVER分组依据(基于其他列的聚合列)

SQLSERVER分组依据(基于其他列的聚合列),sql,sql-server,group-by,Sql,Sql Server,Group By,我有一个表,有3列a,B,C 我想进行如下查询: select A, Max(B), ( C in the row having max B ) from Table group by A. 有没有办法进行这样的查询 测试数据: A B C 2 5 3 2 6 1 4 5 1 4 7 9 6 5 0 预期结果将是: 2 6 1 4 7 9 6 5 0 试试这个 select t.*

我有一个表,有3列a,B,C

我想进行如下查询:

select A, Max(B), ( C in the row having max B ) from Table group by A.
有没有办法进行这样的查询

测试数据:

A    B    C
2    5    3
2    6    1
4    5    1
4    7    9
6    5    0
预期结果将是:

2    6    1
4    7    9
6    5    0
试试这个

select t.*
from   table t
join   (Select A,max(b) B from table group by A) c
on  c.a=t.a
and c.b=a.b

任何测试数据和所需输出??您能否解释此查询的工作原理以及它与问题中的查询的不同之处?获取派生表中的最大值,并将派生表a列与表a列联接以进行匹配。现在你有a和b的最大值。找到c,其中两个都存在+1,因为不需要连接,这就是我要找的
select t.*
from   table t
join   (Select A,max(b) B from table group by A) c
on  c.a=t.a
and c.b=a.b