添加一个订单列,其中值是 table 考虑分组 id(db2) 中的位置
Adding an order column where the value is the position in the table considering an grouping id(db2)
我需要在以下 table:
添加一个订单栏
| 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 函数...
您可以(应该)创建一个视图,而不是实际将列添加到物理 table:
create view myview as
(select Id, DepId, Name
, ROW_NUMBER() OVER(PARTITION BY DepId ORDER BY DepId, ID) as OrderNbr
from mytable
)
我需要在以下 table:
添加一个订单栏| 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 函数...
您可以(应该)创建一个视图,而不是实际将列添加到物理 table:
create view myview as
(select Id, DepId, Name
, ROW_NUMBER() OVER(PARTITION BY DepId ORDER BY DepId, ID) as OrderNbr
from mytable
)