如何根据特定列创建 sql 序列?

How do I create a sql sequence based on a specific column?

我必须在 SQL 中使用 VERSION 列的序列执行类似以下示例的操作:

ID VERSION
1 1
1 2
2 1
3 1
3 2
3 3
4 1

我的意思是,当输入具有相同 ID 的新记录时,VERSION 增加 1,如果它是不同的 ID,则该 ID 再次从 1 开始,有什么想法吗?

你需要的是ROW_NUMBER()解析函数如

SELECT id, ROW_NUMBER() OVER (PARTITION BY id ORDER BY 0) AS version
  FROM t

其中PARTITION BY执行GROUPING BY,而ORDER BY仅代表强制性(所以,后面是任意常数