为SQL结果组分配相同的编号

时间:2016-01-24 06:29:24

标签: sql oracle11g window-functions

如何为多个组中的N个结果分配相同的数字 一个oracle查询?在这种情况下,我在 num_per_grp 中说明了它。

我尝试过group_no使用row_number()和rank()组,但结果不符合我的要求。事实证明,每个组都有1,2个序列号。

我试过这个:

|--------+------------+------------+--------------+-------------|
| id     | group_no   | amount     | created_date | row_number  |
|--------+------------+------------+--------------+-------------|
|      1 | aaaaa      |    10      | 1/1/2016     |  1          |
|      2 | aaaaa      |   -10      | 1/1/2016     |  2          |
|      3 | bbbbb      |    20      | 2/1/2016     |  1          |
|      4 | bbbbb      |   -20      | 2/1/2016     |  2          |
|      5 | ccccc      |    30      | 3/1/2016     |  1          |
|      6 | ccccc      |   -30      | 3/1/2016     |  2          |
|--------+------------+------------+--------------+-------------|

结果应该是这样的:

|--------+------------+------------+-------------|
| id     | group_no   | amount     | num_per_grp |
|--------+------------+------------|-------------|
|      1 | aaaaa      |    10      |      3      |  
|      2 | aaaaa      |   -10      |      3      |
|      3 | bbbbb      |    20      |      2      |
|      4 | bbbbb      |   -20      |      2      |
|      5 | ccccc      |    30      |      1      |
|      6 | ccccc      |   -30      |      1      |
|--------+------------+------------+-------------|

我怎么能达到这样的目标?

0 个答案:

没有答案