位置: 编程技术 - 正文

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

  • 分红给合伙企业后,被普通合伙人借走
  • 税局退回附加税账务处理办法
  • 管理费用中的办公费占比是多少
  • 离职人员个税申报如何处理
  • 企业年金也需要缴纳吗
  • 营改增对房地产行业的影响
  • 合并报表中少数股东权益是什么意思
  • 忘了作废的发票能补开吗
  • 账户未认证
  • 现金支付可以报销吗
  • 开办生产建设项目
  • 个税申报系统中年收入不超6万元的确认错了怎么改
  • 工程结算与工程施工
  • 租赁农民土地应该开发票吗
  • 社保基数每个月可以调整一次吗
  • 研究开发费用扣除标准
  • 一般纳税人申报表填写顺序
  • 凭证出现错误如何解决
  • 不是公司员工可以买原始股吗
  • 货币资金怎么核对账实相符
  • 个人所得税缴纳标准起征点
  • 做金融服务要什么资格
  • 预借现金和现金分期的区别
  • win11 应用商店
  • 一个完整的php文件由哪些元素组成
  • 仙客来养殖方法和注意事项视频
  • 解决的英文
  • 小规模纳税人进项可以抵扣吗
  • 财务专用章是干啥的
  • oppor11s输入法怎么清除记忆
  • 结转本月完工产品成本120000元
  • php导入php文件
  • win11电源高性能模式代码
  • 公司发放加班补贴 固定金额
  • vue父子组件传值
  • ftp port命令
  • php排序方法有几种区别
  • 长期待摊费用账务
  • 企业支付给其他单位劳务费时需要代扣代缴个税吗
  • 企业分立股权比例发生变化的税务处理
  • 母公司子公司合并
  • 培训费开票属于哪个征收明目
  • mongodb 入门
  • 只开发票没有合同也要印花税吗
  • 当月发生的费用
  • 订单不足停工
  • 收支平衡表怎么做工厂表格
  • 自产货物用于抵偿债务
  • 增值税的账务处理怎么做
  • 建筑公司跨区域经营预缴
  • 企业以现金形式发工资
  • 机票的退票费可以开具发票吗
  • 食堂员工私自拿东西怎么办
  • 事业单位库存物品
  • 退票费收入按什么征税
  • 现金流量表的编制基础是权责发生制
  • 以前年度费用科目入错 不影响以前年度利润的账务处理
  • sql删除重复数据只保留一条日期最大的
  • 自动清理河道垃圾船
  • 在数据库master中拒绝了create table权限
  • linux怎么统计文件中出现字符串的数量
  • win10禁用系统uac
  • linux如何挂载iso文件
  • linuxsleep函数
  • 重装系统要注意哪些
  • win7系统如何更改默认浏览器
  • Linux操作系统软链接和硬链接的联系与区别
  • win7系统打不开win10安装包
  • win8系统升级win8.1
  • linux硬盘找不到
  • cocoscreator渲染流程图
  • unity update优化
  • js闭包详解
  • 甘肃税务局电子发票怎么开
  • 江苏国税电子税务局官网
  • 残疾人交房产税有什么优惠
  • 北京地税局上班时间查询
  • 企业所得税的计算,收入是含税还是不含税
  • 云南省国家税务总局处长名单
  • 游艇车船税怎么收
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设