对记录排序后使用密集排序

Using dense rank after sorting the records

我需要一些帮助来使用 sql

中的密集排名函数

我在table、

中有以下数据

我想根据 CREATED DATE 列对记录进行排序,然后分配相同的行号 如果多个记录的文档 ID 相同。我使用了以下查询,但行号未排序

 SELECT * FROM (((SELECT * FROM (SELECT   DENSE_RANK() OVER(order by VC_VIN_DOCUMENT_ID) AS "RowNumber",
VC_VIN_DOCUMENT_ID,VC_VIN_LOCALE,VC_VIN_IMDOC_CREATE_DATE,VC_VIN_CARLINE_CODE,VC_VIN_DOCUMENT_TYPE
from (SELECT DISTINCT VC_VIN_IMDOC_CREATE_DATE,VC_VIN_DOCUMENT_TYPE, VC_VIN_LOCALE,VC_VIN_DOCUMENT_ID,VC_VIN_CARLINE_CODE from OK_DC.GMS3_VC_MME_VIN_SI_DETAIL ORDER BY VC_VIN_IMDOC_CREATE_DATE DESC)))))  ;

我想实现如下目标。

有人可以帮我查询吗。

感谢您的宝贵时间!!

您可以分两步完成此操作。首先是获取创建日期。然后分配行号:

select vsd.*,
       dense_rank() over (order by max_cd desc, VC_VIN_DOCUMENT_ID) as rowNumber
from (select vsd.*,
             MAX(vsd.VC_VIN_IMDOC_CREATE_DATE) over (partition by vscd.VC_VIN_DOCUMENT_ID) as max_cd
      from OK_DC.GMS3_VC_MME_VIN_SI_DETAIL vsd
     ) vsd;