我有一张桌子:
ID Ticket_Number Created_Date Rank
123 222 10/20/2011 1
125 222 10/20/2011 2
130 222 10/20/2011 3
133 222 10/22/2011 4
155 111 10/10/2015 1
165 111 10/15/2018 2
select A.*, rank() over(partition by ticket_number order by id) as rank
FROM ticket_table A
我可以通过ticket_number获取信息,然后按ID排序...我不知道如何确保创建的日期是具有最大ID的分组中的最大日期。
答案 0 :(得分:0)
SELECT TOP 1 A.*
FROM ticket_table A
WHERE A.ticket_number = 222
ORDER BY ID DESC
答案 1 :(得分:0)
一种常用方法是使用subquery
:
select *
from ticket_table A
where id = (select top 1 id
from ticket_table
where Ticket_Number = A.Ticket_Number
order by date desc);
但是,所有 DBMS 都不支持top
子句,因此如果需要,请使用limit
子句。