首页 > 解决方案 > 在 SQL 中为另一列中的新值添加具有重复序列号的列

问题描述

我需要有一列可以识别特定列的序列(给定示例中的名称),并且它从 1 开始作为新名称。请参阅下表。我不需要重复值的计数,我希望记录它们的发生。例如,如果第一次出现在表中,则在其前面显示 1,如果第二次出现,则显示 2,依此类推.... 再次显示 1 表示在列中遇到的新值。

我正在尝试在 Excel VBA SQL 查询中实现它......

请在此处查看要求...我需要按照上述说明计算列 ID

在此处输入图像描述

标签: sqlexcelvba

解决方案


大多数 DBMS 都有row_number()功能,所以我会使用它:

select t.*, row_number() over (partition by name order by ?) as seq
from table t;

如果 DBMS 没有row_number()功能,那么您可以使用 subquery :

select t.*, ( select count(*)
              from table t1
              where t1.name = t.name and t1.pk <= ?
            ) as seq
from table t;

?指示您的pk( primary key) 列,该列在指定您的列顺序的表中具有唯一的唯一值。


推荐阅读