SQLSERVER分组依据(基于其他列的聚合列)
我有一个表,有3列a,B,C 我想进行如下查询: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.*
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