Sql server SQL Server:选择具有最大值的行

Sql server SQL Server:选择具有最大值的行,sql-server,Sql Server,SQL Server语法-我有以下表格: C1 - C2 - C3 -------------- 2 - AA - 10 2 - AA - 20 3 - AA - 15 3 - AA - 16 3 - AA - 56 1 - BB - 54 2 - BB - 53 2 - BB - 89 我需要一个将返回此结果的查询: C1 - C2 - C3 -------------- 3 - AA - 15 3 - AA - 16 3 - AA - 56 2 - BB - 53

SQL Server语法-我有以下表格:

C1 - C2 - C3
--------------
 2 - AA - 10
 2 - AA - 20
 3 - AA - 15
 3 - AA - 16
 3 - AA - 56
 1 - BB - 54
 2 - BB - 53
 2 - BB - 89
我需要一个将返回此结果的查询:

C1 - C2 - C3
--------------
 3 - AA - 15
 3 - AA - 16
 3 - AA - 56
 2 - BB - 53
 2 - BB - 89
因此,它应该只返回最大值为C1大于C2的行

我该怎么做

SELECT t1.C1,t1.C2,t1.C3
FROM Table1 t1 INNER JOIN (SELECT MAX(C1) C1,C2 FROM table1 GROUP BY C2)
as t2 on t1.C1=t2.C1 and t1.C2=t2.C2
Order by C2
输出

C1  C2  C3
3   AA  15
3   AA  16
3   AA  56
2   BB  53
2   BB  89
现场演示


可以在max c1上为c2使用内部联接

  select m.* 
  from my_table  m
  inner JOIN  ( 
  select max(C1) max_c1, C2
  from my_table 
  group C2 ) t on t.max_c1 = m.C1 and t.C2 = m.C2

可能重复编号。在我的情况下,每个窗口需要几行。