如何在SQL中基于时间戳获取最新的两个记录

我在表中有这些记录,我想使用时间戳从该表(前4行)中获取最新的两个记录

44121993    GEO     21-NOV-19 02.16.55.496000000 PM
44121993    PRODCT  21-NOV-19 02.16.55.496000000 PM
44121993    GEO     21-NOV-19 02.16.55.495000000 PM
44121993    PRODCT  21-NOV-19 02.16.55.495000000 PM
44121993    GEO     21-NOV-19 02.16.55.494000000 PM
44121993    PRODCT  21-NOV-19 02.16.55.494000000 PM
weizhaoxia96 回答:如何在SQL中基于时间戳获取最新的两个记录

在看到标签“每个组的最大n” 之后,我建议将DENSE_RANKPARTITION BY一起使用,以获取每个组的前n条记录,如下所示:以下:

SELECT * FROM
    ( SELECT
          T.*,DENSE_RANK() OVER(
               PARTITION BY COL1 -- COL1 IS THE FIRST COLUMN FROM YOUR EXAMPLE 
                                 -- or COLUMN ON WHICH GROUPING NEED TO BE DONE
               ORDER BY TIMESTAMP_COL DESC) RN
        FROM  YOUR_TABLE T
    )
WHERE RN <= 2

干杯!

,

您可以使用dense_rank()

select *
from (
    select 
        t.*,dense_rank() over(order by timestamp_col desc) rn
    from mytable t
) t
where rn <= 2
,

尝试一下:-

从tableName中选择*,按dateAndTimeCol限制2;

本文链接:https://www.f2er.com/3059238.html

大家都在问