我的问题的一个例子
我有这张桌子
ID | colA | ColB | Result
1 | 10 | 24 | 1 <- There is a newer row with the same colA and colB ( id=4)
2 | 12 | 24 | 0
3 | 95 | 22 | 0 <- There is a newer row with the same colA and colB ( id=6)
4 | 10 | 24 | 1
5 | 10 | 22 | 1
6 | 95 | 22 | 0
我只想获得具有相同colA和colB的更大ID的行。在请求之后我应该得到它。
ID | colA | ColB | Result
2 | 12 | 24 | 0
4 | 10 | 24 | 1
5 | 10 | 22 | 1
6 | 95 | 22 | 0
我想要一个完成这项工作的查询。我正在考虑触发器,但是sql请求应该更好。
答案 0 :(得分:3)
将CTE与row_number()
一起使用with CTE as
(
select t1.*, row_number() over(partition by ColA, ColB order by id desc) rn
from MyTable t1
)
select *
from CTE
where rn=1