0

我正在尝试制作一个 Postgres 序列,一旦它链接到的项目的 id 发生更改,它将重置,例如:

ID      SEQUENCE_VALUE
1              1
2              1
1              2
1              3
2              2
3              1

我一般不太了解 PSQL 或 SQL,也找不到类似的问题,非常感谢任何帮助!

4

1 回答 1

1

只需使用不重置的正常序列并在查询中计算所需的值:

SELECT id,
       row_number() OVER (PARTITION BY id
                          ORDER BY seq_col)
          AS sequence_value
FROM mytable;

这里,seq_col是从序列(标识列)自动生成的列。

于 2021-08-30T14:00:49.650 回答