添加订单列中的值是在表中考虑的分组标识(DB2)

问题描述:

我需要一个命令列添加到下表中的位置:添加订单列中的值是在表中考虑的分组标识(DB2)

| Id | DepId | Name | 
|----|-------|-------| 
| 1 | 1 | Bill | 
| 2 | 1 | Joe | 
| 3 | 2 | Jack | 
| 4 | 1 | Jill | 

它应该成为:

| Id | DepId | Name | Order | 
|----| ------|-------|-------| 
| 1 | 1 | Bill | 1 | 
| 2 | 1 | Joe | 2 | 
| 3 | 2 | Jack | 1 | 
| 4 | 1 | Jill | 3 | 

我知道让我们按ID使用顺序,不用担心这样的顺序栏,但在这种情况下,当条目移动时难度会增加。

您正在寻找的ROW_NUMBER()OLAP功能...

实际上并未添加列到物理表,你可以(应该)创建一个视图:

create view myview as 
(select Id, DepId, Name 
    , ROW_NUMBER() OVER(PARTITION BY DepId ORDER BY DepId, ID) as OrderNbr 
    from mytable 
)