Sql server 如何基于SQL Server列值添加序列行号

Sql server 如何基于SQL Server列值添加序列行号,sql-server,function,sequence,partition,row-number,Sql Server,Function,Sequence,Partition,Row Number,我在SQL Server中有下表 DesiredRowNo. Customer Date NID SID Contacts AG 1 AAA 04/09/2018 15357989260016600 100743 1 1 1 AAA 04/09/2018 15358110980018300 100743 1 1 1

我在SQL Server中有下表

DesiredRowNo. Customer  Date        NID                 SID     Contacts  AG
 1               AAA    04/09/2018  15357989260016600   100743  1          1
 1               AAA    04/09/2018  15358110980018300   100743  1          1
 1               AAA    04/09/2018  15358197620012800   100743  1          1
 2               AAA    21/09/2018  15358902310016400   100743  1          1
 2               AAA    21/09/2018  15358999300015200   100743  1          1
 3               AAA    29/09/2018  15359624190012200   100743  1          1
 3               AAA    29/09/2018  15359896100010500   100702  1          1
 4               AAA    30/09/2018  15360551640011900   100743  1          1
 1               BBB    05/09/2018  15357989260016600   100743  1          1
 1               BBB    05/09/2018  15358110980018300   100743  1          1
 2               BBB    08/09/2018  15358197620012800   100743  1          1
 3               BBB    15/09/2018  15358902310016400   100743  1          1
 3               BBB    15/09/2018  15358999300015200   100743  1          1
 4               BBB    19/09/2018  15359624190012200   100743  1          1
 5               BBB    24/09/2018  15359896100010500   100702  1          1
 5               BBB    24/09/2018  15360551640011900   100743  1          1
我需要第1列DesiredRowNo。根据客户和日期显示排名/行号。因此,对于客户AAA,具有相同日期的所有行都将排名为1,然后下一个唯一日期将排名为2,依此类推。必须是基于日期的顺序

见DesiredRowNo。上面的值可以更好地解释我想要实现的目标

我试过使用

ROW_NUMER() over (partition by Customer, date order by date) 
但这似乎并没有给出所需的正确顺序


有什么想法吗?

哎呀,这是个大疏忽。我用以下方法修复了它:

DENSE_RANK() over (partition by Customer order by date)
感谢您的steer Larnu

尝试以下方法:

 select  tab.DesiresRowNo.,final.Customer,
final.NID,final.SID,final.Contacts,final.AG
 from Table final
 left join 
 ( select
 ROW_NUMBER() OVER(ORDER BY Customer ASC) AS DesiresRowNo.,
 Customer,Date
 from Table
 group by Customer,Date )tab
 on final.Customer=tab.Customer
 and final.Date=tab.Date

如果按日期和顺序进行划分,那么除了随机顺序之外,您希望的顺序是什么?如果要求您按顺序放置3个日期,并且它们都是相同的日期,您是否知道哪一个是正确的顺序而没有更多细节?您需要按不同的列排序。