我试图在我的 SQL 查询中使用 Dense_Rank 对某些列中具有相同数据的行进行排名,然后在下一行中发现更改的数据时增加它。我通过这个查询成功地这样做了:
SELECT DENSE_RANK () OVER (ORDER BY ID, Date1) AS P_Key,
*
FROM dbo.tbl_Main T
ORDER BY S_ID, ID, Date1, Date2;
但是 Rank 不是按顺序出现的,而是根据主 sql 上应用的顺序出现的。脚本的输出是:
从屏幕截图中可以看出,它为在 ID 和 Date1 列中具有相同数据的行提供相同的排名(P_Key),但由于主要的 Order By 而到处乱序。我希望其他行以与主“Order By”应用的顺序相同的顺序出现,并且“P_Key”的顺序从 1 开始,然后按顺序增加。我该怎么做?