比较SQL中的两个不同排名值

时间:2018-05-07 19:39:37

标签: sql

我有一张桌子:

   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的分组中的最大日期。

2 个答案:

答案 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子句。