如何根据我的结果集创建序列号?

时间:2014-10-01 22:49:23

标签: oracle

这是我的表目前的样子

    Month   Product     Value
---------------------------------
    1       Shoes       12.00
    1       Jacket      15.00
    2       Shirt       3.00 

我需要添加一个生成MonthlySaleID的列,每月增加一次,并在每个月更改时重置,如此

    Month   Product     Value   MonthlySaleID
------------------------------------------------
    1       Shoes       12.00   1
    1       Jacket      15.00   2
    2       Shirt       3.00    1

任何线索都会很棒

1 个答案:

答案 0 :(得分:1)

您可以尝试使用此视图:

CREATE OR REPLACE VIEW vw_rpt_sales AS
SELECT month, product, value, RANK() OVER (PARTITION BY month ORDER BY Product) AS MonthlySaleID
FROM 
    originaltable;

无法测试等级函数,理论上它应该返回你想要的。我按产品订购,因为您的问题似乎没有您有销售ID信息。但如果你有它,最好按SaleID订购。我想。