位置: 编程技术 - 正文

巧妙利用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函数的作用)

  • 增值税普通发票几个点
  • 发票多开了,要求退回重开,如何处理
  • 担保费能否开专票
  • 模具费入什么会计科目
  • 技术转让成本包括什么
  • 收到土地使用权转让金会计分录
  • 动漫产业增值税优惠政策
  • 购入材料时,会出现哪几种情况
  • 什么时候计提资本成本
  • 工资可以用来抵扣成本吗
  • 企业办自建厂房理房产证需要什么资料
  • 增值税专用发票的税率是多少啊
  • 如何选一般纳税人还是小规模纳税人合作?
  • 普通发票离线限额为0
  • 附加税减半征收计提和缴纳的会计分录
  • 一般纳税人企业要交哪些税
  • 未缴纳出资的股东未到期能否追加为被执行人
  • 盘盈对应的入账科目
  • 公司注销后股东承担责任的法律规定
  • 投资款怎么做会计科目
  • 30万的营业额20%是多少
  • 投标费用属于什么会计科目
  • 汽车加油票可以开专票吗
  • 酒类应税消费品消费税纳税申报表怎么填
  • 其他权益性无形资产的进项税额抵扣
  • 公司接受承兑汇票的风险
  • 装修公司什么要自己买
  • 赠送产品如何计入成本
  • 股票属于以下哪一类金融工具
  • 通用pe工具箱安装教程
  • 出租厂房折旧可以税前扣除
  • 合同预付款怎么做账
  • php中字符串函数
  • 个人如何办理住房贷款
  • php获取当前页面
  • 关于php中一些字符的数据
  • 合并财务报表抵消原理
  • phpcms v9安装教程
  • 劳务派遣差额会计分录
  • 公司年底封账时间
  • 长期股权投资印花税计入什么科目
  • 营改增后残保金计入什么科目
  • 小微企业免征增值税报表填写
  • 什么是固定资产?其特征有哪些
  • 怎么查看代理记账协议终止情况
  • 劳务公司可以
  • 企业坏账准备贷方核算内容
  • 存根联是自己留着吗
  • 应收款和实收款区别
  • 采购成本和销售成本的核算
  • 汇算清缴如何调报表
  • 企业捐赠自产产品的所得税处理
  • 小规模免税收入是多少
  • 零余额账户用款额度是什么意思
  • 企业年金个税怎么计算
  • 外埠存款主要使用范围
  • 办公费项目内容
  • 出口退税账务处理
  • 为什么总成本费用不变
  • Windows7任务计划在什么位置?
  • win2008r2下载
  • macu盘安装windows
  • win7卸载系统软件
  • linux cp 不是目录
  • pvlsvr.exe - pvlsvr是什么进程 有什么用
  • win7系统设备管理器没有端口
  • win10怎么升级到2020
  • win8启动后的初始界面
  • win8无法安装inter显卡驱动
  • unity输入中文
  • 列举css的三种应用方式
  • 辅组什么词?
  • python简单加密
  • JavaScript入门教程
  • 1、BluetoothChat之BluetoothChat.java
  • js如何定义类
  • js动态添加trtd
  • 国家税务总局介绍
  • 国税补录信息怎么查询
  • 个人所得税缴纳标准2024年
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设