位置: 编程技术 - 正文

巧妙利用PARTITION分组排名递增特性解决合并连续相同数据行(巧妙利用谐音的广告语)

编辑:rootadmin

推荐整理分享巧妙利用PARTITION分组排名递增特性解决合并连续相同数据行(巧妙利用谐音的广告语),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:巧妙利用形式是什么三字俗语,巧妙利用形势的人三字俗语,巧妙利用旧床改造,巧妙利用旧床改造,巧妙利用形式是什么三字俗语,巧妙利用旧床改造,巧妙利用柱子做设计,在品牌设计中,大创意的巧妙利用,内容如对您有帮助,希望把文章链接给更多的朋友!

问题提出

先造一些测试数据以说明题目:

数据说明,ID列连续自增,列1和列2都是TFS中PBI的状态记录,就是从什么变更到什么,如新建到批准,批准到提交神马的

现在要求连续且相同的状态变更记录合并,不连续或者不同的状态变更保留,例如:

以上图为例,ID为1,4,5,6的记录都是从New到Approved状态,但是记录1与记录4、5、6不相邻,或者说不连续,那么就要分成两组,

记录1一组,记录4、5、6一组,其它记录因为状态变更不相同所以全部保留,最后的查询结果应该长成下图这个样子:

继续之前你可以先自己试下,这可能会带来新的解题思路,

解题思路

巧妙利用PARTITION分组排名递增特性解决合并连续相同数据行(巧妙利用谐音的广告语)

该问题的关键在于GROUP BY会把记录1、4、5、6合并在一起,而这不符合要求,仅需要合并4、5、6,源表里没有这样一个字段可以将记录1与记录4、5、6区分开来,这是解题的关键

这里可以利用RANK函数配合使用PARTITION关键字,首先把分到一组去,同时产生一个组内排名的新字段R,这个排名R很关键,后边会用到,见下图:

RANK函数不了解的点这里

RANK函数以Col1 + Col2为分组条件,这样分成了四组,分别是New-Approved、Approved-Commited、Commited-In Progress、Approved-Removed

在New-Approved组内,记录1、4、5、6分别排名1、2、3、4;其它组内仅一条记录,在其组内排名均为1

现在制造了一个R字段,R字段标识了每条记录在其组内的排名,排名自1开始递增,

源表内ID自增,组内排名R递增,这就是解题的关键,

当连续相同的记录出现时,其ID与其排名R在同时递增,则其差值是相同的,拿到这个差值就可以很容易解决题目了,看下图:

记录4、5、6相同且连续出现,其ID与其排名在同时增长,其差值则保持不变,这里使用Col1 + Col2 + Gap作为分组条件即可将记录4、5、6合并,再取个最小ID出来,问题解决,完整脚本如下:

可是如果ID不连续时怎么办呢?这个不难,参考[MSSQL]ROW_NUMBER函数

freetds简介、安装、配置及使用介绍 什么是FreeTDS简单的说FreeTDS是一个程序库,可以实现在Linux系统下访问微软的SQL数据库!FreeTDS是一个开源(如果你喜欢可以称为自由)的程序库,是TDS

一个函数解决SQLServer中bigint 转 int带符号时报错问题 有一个需求是要在一个云监控的状态值中存储多个状态(包括可同时存在的各种异常、警告状态)使用了位运算机制在一个int型中存储。现在监控日志

SQLServer恢复表级数据详解 最近几天,公司的技术维护人员频繁让我恢复数据库,因为他们总是少了where条件,导致update、delete出现了无法恢复的后果,加上那些库都是几十G。恢

标签: 巧妙利用谐音的广告语

本文链接地址:https://www.jiuchutong.com/biancheng/320308.html 转载请保留说明!

上一篇:如何使用Visual Studio 2010在数据库中生成随机测试数据(如何使用灭火器的方法)

下一篇:一个函数解决SQLServer中bigint 转 int带符号时报错问题(sql函数的作用)

  • 做账报税简单吗
  • 资金账簿印花税每年都要交吗?
  • 固定资产入账怎么做账
  • 企业对外投资收益税收
  • 企业前期开办费怎么入账
  • 企业亏损结转年限举例说明
  • 申报增值税之后怎么做账
  • 社保申报后不能缴费
  • 法人分配利润分录
  • 个人转让不动产给个人独资企业
  • 大家怎么看恒大品牌
  • 购买成品入库并结转成本会计分录怎么写?
  • 二手机械设备买卖合同
  • 顾客退货补差价怎么做账?
  • 行政单位要纳税吗
  • 年薪12万个人所得税交多少钱
  • 不动产经营租赁印花税税率
  • 农产品初加工免征企业所得税
  • 国家金库为什么扣我银行里的钱
  • 在建工程完工后如何转为固定资产
  • 赞助贫困学生的语句
  • 苹果iphone支持在哪
  • 差旅补助需要计提吗
  • 季度所得税计算方法
  • 资产负债表里的存货怎么算
  • win11系统摄像头黑屏
  • 金融企业贷款损失准备金税务管理
  • 一般纳税人购进税控收款机抵扣
  • 将银行借款存入银行会引起企业资产总额的变化吗
  • 银行存款总账怎么登记图片
  • ieview.exe 是什么
  • php提高性能
  • 公司已开票给客户,但客户未打款怎么办?
  • 免税货物增值税计算公式
  • zendframework3中文手册
  • 航空业燃油附加率是多少
  • 污水处理增值税税率
  • php静态方法调用
  • php图片加水印实例分析
  • Vue Router4 ,prams 传参失效和报错问题
  • js栈堆的区别
  • 帝国cms app
  • 企业用户怎么在电脑登录
  • 企业会计日志
  • 金税盘密码和口令忘了无法登录
  • 帝国cms首页怎么打开
  • zabbix 网络监控
  • 技术开发费免税政策
  • 生产成本明细账t型账
  • 申报成功后怎么更正申报
  • 员工餐费报销分录怎么弄
  • 无形资产如何做账务处理
  • 单位发给职工的餐费补贴我变卖了违法吗?
  • 只有销售才能使你成功的名言
  • 跨年度未开发票第二年如何做确认收入?
  • 公司员工出差住酒店费用明细有问题怎么办
  • 处理旧固定资产税率
  • 劳务派遣公司账务处理
  • 建设工程施工管理
  • 手工现金日记账范本
  • win10不是自己的账户
  • win8怎么添加打印机到电脑上
  • win7玩穿越火线电脑应该怎么设置
  • 深度技术win7光盘安装教程
  • 原版windowsxp安装
  • win7怎么禁止网络连接
  • linux服务器日志文件在哪里
  • win7打印机图标显示感叹号
  • linux分区顺序详解
  • [置顶]从lv2开始开挂的原勇者候悠闲的异世界生活
  • using Net::SSH2 shell 的二个方法
  • python3 args
  • linux shell函数
  • 安卓基于谷歌
  • python生成随机数表
  • python pil库官网
  • python魔法方法有啥用
  • 出口退税中的留抵税额
  • 重庆市网上税务局官网app下载
  • 印花税会计分录怎么做 印花税需要计提吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设