sql - 如何计算/增加 MS SQL 选择中表列的当前出现次数

标签 sql sql-server

我有一个如下所示的表格:

id | name| fk_something
----------------
0  | 25  | 3
1  | 25  | 2
2  | 23  | 1

我想添加另一列,其编号每次出现 name 行时都会增加,例如:

id | name| fk_something| n
--------------------------
0  | 25  | 3           | 1
1  | 25  | 2           | 2
2  | 23  | 1           | 1

我不确定如何实现这一点。使用 count() 我只会得到 name 的出现总数,但我想增加 n 以便我有一个不同的值每一行。

最佳答案

你想要 row_number() :

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

关于sql - 如何计算/增加 MS SQL 选择中表列的当前出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57574320/

相关文章:

sql - plpgsql 函数的动态部分

sql - 使用自连接根据列值从表中删除行

sql - 插入到多个选择中

php - 如何将数组分配给sql查询的变量

sql - 如何比较一个有时区的日期和一个没有时区的日期

mysql - 初学者 SQL,终止加载 csv 的字段。以逗号结尾

sql - 在 SQL Server 中将行旋转到具有自定义列名称的列

sql - 如何在 SQL Server 中获取此列结果

c# - 将表列中的二进制读入 byte[] 数组

c# - 消息6522,在执行clr存储过程期间发出16级警告