我下表在Oracle数据库:如何仅使用SQL将相关数字分配给行?
InvoiceNumber InvoiceDate InvoiceCorrelative
------------- ----------- ------------------
123 02-03-2009 0
124 02-03-2009 0
125 02-04-2009 0
126 02-04-2009 0
127 02-04-2009 0
128 02-05-2009 0
129 02-06-2009 0
130 02-06-2009 0
... ... ...
我想为每个行的InvoiceCorrelative
列中的值,以具有数字序列从1开始的每个日期。在上面的例子中我想表看起来像这样:
InvoiceNumber InvoiceDate InvoiceCorrelative
------------- ----------- ------------------
123 02-03-2009 1
124 02-03-2009 2
125 02-04-2009 1
126 02-04-2009 2
127 02-04-2009 3
128 02-05-2009 1
129 02-06-2009 1
130 02-06-2009 2
... ... ...
是否有可能只使用SQL语句做到这一点?我一直在玩rownum,但没有得到任何地方。
这将与MSSQL工作,但看标签,提问者是使用Oracle。 – 2009-12-07 20:49:39
快看看说ROW_NUMBER()从Oracle 10g +是支持的,但DENSE_RANK是9I:http://techonthenet.com/oracle/functions/dense_rank.php – 2009-12-07 20:52:28
@Josh斯米顿:我认为甲骨文发明的分析功能和Microsoft复制他们@OMG小马:有趣的链接! – Andomar 2009-12-07 20:54:55