首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何计算/递增MS SQL select中表列的当前出现次数

如何计算/递增MS SQL select中表列的当前出现次数
EN

Stack Overflow用户
提问于 2019-08-20 21:02:02
回答 2查看 187关注 0票数 2

我有一张表,看起来像这样:

代码语言:javascript
运行
复制
id | name| fk_something
----------------
0  | 25  | 3
1  | 25  | 2
2  | 23  | 1

我想添加另一列,其编号在每次行name发生时都会递增,例如:

代码语言:javascript
运行
复制
id | name| fk_something| n
--------------------------
0  | 25  | 3           | 1
1  | 25  | 2           | 2
2  | 23  | 1           | 1

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-20 21:03:58

你想要row_number()

代码语言:javascript
运行
复制
select t.*, row_number() over (partition by name order by id) as n
from table t;
票数 5
EN

Stack Overflow用户

发布于 2019-08-20 21:04:09

您可以尝试使用COUNT作为分析函数:

代码语言:javascript
运行
复制
SELECT
    id,
    name,
    fk_something,
    COUNT(*) OVER (PARTITION BY name ORDER BY id) n
FROM yourTable
ORDER BY
    id;

Demo

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57574320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档