【问题标题】:SQL Server Grouped Number GenerationSQL Server 分组号码生成
【发布时间】:2020-07-22 16:59:32
【问题描述】:

当数据从一个特定数据值切换到另一个时,我需要在 SQL Server 查询中生成分组数字。

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

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

如何在查询中做到这一点?

【问题讨论】:

  • 用您正在使用的数据库标记您的问题。

标签: sql function grouping row-number


【解决方案1】:

您可以使用累积和来做到这一点 - 只需计算每行的 'Prim' 值的数量:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    • 2011-08-11
    • 1970-01-01
    • 2015-04-13
    • 1970-01-01
    • 2011-10-29
    • 2019-06-22
    相关资源
    最近更新 更多