Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >基于row_number更新列

基于row_number更新列
EN

Stack Overflow用户
提问于 2016-12-01 22:59:08
回答 1查看 125关注 0票数 0

我为我的表创建了一个默认值为0的列。我想用正确的序列号更新那个表。我能用Row_Number做到这点吗?

我的表格是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PersonID |  Code  |  Sequence Number
---------+--------+------------
10       | D112  |    0
10       | D112  |    0
10       | D112  |    0
10       | E110  |    0
10       | E110  |    0
10       | E110  |    0
10       | D112  |    0
10       | D112  |    0
10       | D112  |    0
10       | E110  |    0
10       | E110  |    0
10       | E110  |    0

我希望我的表是这样的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PersonID |  Code  |  Sequence Number
---------+--------+------------
10       | D112  |    1
10       | D112  |    1
10       | D112  |    1
10       | E110  |    2
10       | E110  |    2
10       | E110  |    2
11       | M490  |    1
11       | M490  |    1
11       | M490  |    1
11       | N550  |    2
11       | N550  |    2
11       | N550  |    2

这是我拥有的代码,但不确定这是否正确。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
WITH CTE AS (
SELECT
    t.Sequence Number,
    ROW_NUMBER() OVER (PARTITION BY t.PersonID, t.Code ORDER BY t.PersonID) AS RN
FROM Table AS t )

UPDATE CTE 
SET Sequence Number = RN
EN

回答 1

Stack Overflow用户

发布于 2016-12-01 23:26:06

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DECLARE @Table AS TABLE (PersonId INt, Code CHAR(4), SequenceNumber INT)

INSERT INTO @Table VALUES (10,'D112',0),(10,'D112',0),(10,'D112',0),(10,'E110',0)
,(10,'E110',0),(10,'E110',0),(10,'D112',0),(10,'D112',0),(10,'D112',0),(10,'E110',0)
,(10,'E110',0),(10,'E110',0)


;WITH CTE AS (
SELECT
    PersonId
    ,Code
    ,SequenceNumber
    ,DENSE_RANK() OVER (PARTITION BY t.PersonID ORDER BY t.Code ) AS RN
FROM
    @Table AS t)


UPDATE cte
    SET SequenceNumber = RN

SELECT *
FROm
    @Table

您非常接近,只需要将PARTITION BYORDER BY稍作不同,然后使用DENSE_RANK()而不是ROW_NUMBER()来处理关系。

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

https://stackoverflow.com/questions/40921957

复制
相关文章
MySQL timestamp类型列值自动更新
MySQL中使用timestamp定义字段,默认情况下会给字段添加自动更新的属性,本文将分析这个自动更新的设置。 问题概述 一个表中定义了两个timestamp类型的字段, create_time TIMESTAMP NOT NULL COMMENT '创建时间', update_time TIMESTAMP NOT NULL COMMENT '更新时间' 新插入记录时,给create_time和update_time各自赋予当前时间值,没出现问题。更新记录时代码中只更新update_time,结果cre
JavaQ
2018/04/04
3.8K0
PostgreSQL列存增加更新和删除功能
Hydra是企业级数据仓库的开源替代品。速度快且功能丰富,开发人员可以更快的构建更好的分析。支持列存PG的更新和删除是#1客户功能请求,现在GA了。之前博文“如何为分析构建最快的PG数据库”中,回顾了Hydra团队如何将列存、向量化和查询并行化添加到PG中,以及使用ClickBench的基准测试结果。目前对WHERE进行了向量化。但未用SIMD,声称很快会提供。平均下来,查询性能比基本PG提高了23倍!这也太夸张了吧,可以弄下来测试下,文末有源码地址。
yzsDBA
2023/05/25
1.2K0
PostgreSQL列存增加更新和删除功能
一种基于分区列谓词补偿的物化视图增量更新方法
当前业界在做物化视图增量更新时,物化视图一般会存储在一张分区表中,以分区为粒度进行增量、刷新、删除;不然就需要生成大量的物化视图元数据或每次都要重新计算历史所有的物化数据,成本是巨大的。上述物化视图的增量为基础表数据append增加新分区,刷新为先删除后增加,删除即删除对应的分区;当前的物化视图分区表不允许有空洞,否则会导致物化视图无法命中;其他一致性问题见物化视图一致性问题。
jhonye
2023/03/03
9540
模拟 ROW_NUMBER() 函数
MySQL 在 8.0 的版本推出了窗口函数,我们可以很方便地使用 row_number() 函数生成序号。
白日梦想家
2020/07/20
1.1K0
模拟 ROW_NUMBER() 函数
VBA:基于指定列删除重复行
文章背景:在工作生活中,有时需要进行删除重复行的操作。比如样品测试时,难免存在复测数据,一般需要保留最后测试的数据。之前通过拷贝行的方式保留最后一行的数据(参见文末的延伸阅读1),但运行效率较低。目前通过借助数组和字典达到删除重复行的效果。
Exploring
2022/12/18
3.4K0
VBA:基于指定列删除重复行
SQL - ROW_NUMBER() OVER()函数
ROW_NUMBER() OVER()函数用来为每条记录返回一个行号,可以用来对记录进行排序并返回该序号,序号从1开始排序。
雨临Lewis
2022/01/11
7150
Oracle 分析函数 ROW_NUMBER() 使用
在使用 row_number() over()函数时候,over()里头的分组以及排序的执行晚于 where group by  order by 的执行。
星哥玩云
2022/08/13
9460
Hive函数row_number实现[通俗易懂]
理解需求是实现分组取前n个值,实现方式是先按照uid字段升序或倒序,时间字段倒序排序数据集合,然后遍历数据集合,用row_number函数遍历uid字段,相同则row_number值+1,取row_number<=3
全栈程序员站长
2022/08/24
9580
使用ROW_NUMBER()的分页存储过程
分页存储过程,可以直接通过传入表名进行分页的,用到了ROW_NUMBER()函数,所以只适用于MSSQL2005以上. Sql代码 -- Description: 分页,用到了ROW_NUMBER() -- ============================================= create PROCEDURE [dbo].[proc_ShowPage] @tblName varchar(255), -- 表名 @strGetFields varchar(1000
用户8983410
2021/11/02
4270
基于R的竞争风险模型的列线图
将竞争风险模型的cmprsk包加载到R中,使用cuminc()函数和crr()函数可以进行考虑竞争风险事件生存数据的单变量分析和多变量分析。以往推文我们已经详细描述了基于R语言的实现方法,这里不再赘述。那么,您如何看待竞争风险模型呢?如何绘制竞争风险模型的列线图?在这里,我们演示如何绘制基于R的列线图。
用户6317549
2020/07/22
4.2K0
基于R的竞争风险模型的列线图
SQL中row_number() over(partition by)详解「建议收藏」
ROW_NUMBER()函数将针对SELECT语句返回的每一行,从1开始编号,赋予其连续的编号。在查询时应用了一个排序标准后,只有通过编号才能够保证其顺序是一致的,当使用ROW_NUMBER函数时,也需要专门一列用于预先排序以便于进行编号
全栈程序员站长
2022/07/02
8910
SQL中row_number() over(partition by)详解「建议收藏」
SQL Server 中的 ROW_NUMBER 函数
ROW_NUMBER 是 SQL 2005 中新增的函数, 显示结果的行号, 多用于分页, 基本的语法为
beginor
2020/08/10
2.2K0
SQL Server 中的 ROW_NUMBER 函数
Hive Analytics Functions row_number rank over partition by
在做数据分析是,会统计用户访问app不同页面的开始时间,理论上同一个用户访问不同页面的开始时间应该不同。为了排查app端是否存在bug,用到row_number() over () 窗口函数。
大数据工程师-公子
2019/03/14
4890
VBA: 单元格区域基于指定列重新排序
文章背景:在数据处理时,有时需要根据指定列的内容进行重新排序。比如样品测试时,假设存在5个测试点,其中2号点和3号点无需测,在做报告时,一般会保留2号点和3号点的位置,测试数据为空。针对排序的步骤,可以通过VBA代码实现。
Exploring
2022/09/20
1.1K0
VBA: 单元格区域基于指定列重新排序
如何离线更新基于 Debian 的系统
本文我们将介绍如何对离线的系统进行升级或者更新,本方法对基于 Debian 的系统均有效。这一次我们会更新、升级整个操作系统。这个方法在你的主机没有网络连接,或者网络速度很慢时,十分有用。
Debian中国
2018/12/21
1.5K0
基于kubernetes Api完成更新镜像版本
kubernetes Api python client 相关内容信息 Github地址: https://github.com/kubernetes-client/python/blob/master/kubernetes/README.md
py3study
2020/08/10
1.8K0
区分函数 ROW_NUMBER(), RANK(), and DENSE_RANK()
今天给大家推送第一篇SQL文章《辨析函数 ROW_NUMBER(), RANK(), and DENSE_RANK() 》,接下来所讨论的全部内容都是基于ORACLE数据库
万能数据的小草
2020/02/10
6960
Datahub新版本0.9.1更新,列级别数据血缘功能发布!
近期Datahub进行了一次大的版本更新,从0.9版本以后Datahub也正式发布了列级别数据血缘的功能。
大数据流动
2022/11/14
2.1K0
Datahub新版本0.9.1更新,列级别数据血缘功能发布!
用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。
数据库中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。
全栈程序员站长
2022/07/09
1.7K0
点击加载更多

相似问题

基于row_number()更新列

30

使用ROW_NUMBER更新列

113

基于两列的Row_Number

222

基于ROW_NUMBER()的多重更新位置

15

使用ROW_NUMBER更新ID列

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文