Sql server 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
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
可能重复编号。在我的情况下,每个窗口需要几行。