对表进行分区并创建索引列

时间:2014-12-09 14:25:50

标签: sql db2

我正在努力寻找分区下表(db2)的方法:

ID1         ID2
---         ---
110         A
110         B
110         C
238         D
238         E
228         F 
300         G
300         H
300         I

我想创建一个索引列,按ID1分区,如下所示:

ID1         ID2      INDEX
---         ---      ----- 
110         A        1
110         B        1
110         C        1
238         D        2
238         E        2
228         F        2 
300         G        3 
300         H        3
300         I        3 

听起来很简单吧?我正在尝试使用row_number() over (parition by order by)方法执行此操作。

我在尝试:

row_number() over (parition by ID1 order by ID1)

然而这给了我:

ID1         ID2      INDEX
---         ---      ----- 
110         A        1
110         B        2
110         C        3
238         D        1
238         E        2
228         F        3 
300         G        1 
300         H        2
300         I        3

我也尝试过dense_rank,但这会将INDEX中的每个条目标记为1。

有人能指出我正确的方向吗?

感谢。

1 个答案:

答案 0 :(得分:1)

你想:

dense_rank() over (order by id1)