问题描述
是否可以使用同一表格的另一列作为参考在表格中创建自动增量?
我有一个客户表,其中包含id,position和company_id列。我需要每个同伴都有一个自动递增。
简而言之...我需要一列为每个公司提供多个自动增量
示例:
-------------------------------
| table client |
-------------------------------
| id | position | company |
-------------------------------
| 1 | 1 | company one |
| 2 | 2 | company one |
| 3 | 1 | company two |
| 4 | 3 | company one |
| 5 | 2 | company two |
| 6 | 4 | company one |
| 7 | 5 | company one |
| 8 | 3 | company two |
| 9 | 6 | company one |
-------------------------------
我需要列位置作为每个随播广告的自动增量。有人知道这是否可能吗?
解决方法
将用作存储在表中的列是非常痛苦的。但是,使用row_number()
可以很容易地计算出何时需要它:
select c.*,row_number() over (partition by company order by id) as position
from client c
order by c.id