SQL 服务器分组号码生成

SQL Server Grouped Number Generation

我在 SQL 服务器查询中需要一种方法来在数据从一个特定数据值切换到另一个时生成分组数字。

根据下面的前两列及其排序方式,查询如何生成第三列中的数字?

当类型列从 Prim 更改为其他任何内容时,Prim 记录和下一个 Prim 记录之间的所有记录都需要与前一个 Prim 记录具有相同的编号。

如何在查询中完成此操作?

您可以使用累加和来计算 - 只需计算每行的 'Prim' 个值的数量:

select t.*,
       sum(case when type = 'Prim' then 1 else 0 end) over (order by primarykey) as generatednumber
from t;