位置: 编程技术 - 正文

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

  • 合伙事务执行的办法有哪些?
  • 经营用的电饭锅有哪些
  • 广告公司个人所得税几个点
  • 劳务公司如何避税与避费
  • 所得税补缴怎么回事
  • 经营活动产生的净现金流量计算公式
  • 企业所得税可以不交吗
  • 合伙制创投企业
  • 购置办公用品有什么好处
  • 在途物资的会计凭证怎么做
  • 一次性补缴的社保能全额退吗
  • 个人代持股票的交易流程
  • 工业结转成本方法有哪些?
  • 案例分析个人总结报告
  • 留底进项税额办理退税需要什么手续
  • 融资租赁租金收入计税基础
  • 个人房补申请书怎么办
  • 所得税的计税依据
  • 过路过桥费电子票验证
  • 母公司向子公司收取管理费
  • 建筑工程公司开票如何做收入
  • 以前年度少计收入怎么办
  • 发票认证平台登陆不了,IE不成功
  • 增值税申报表附表二填表说明
  • 查账征收改为核定征收需要什么资料
  • 已抵扣的增值税专票如何冲红
  • 股权转让要交哪些费用
  • 华为mate40怎么打开开发者选项
  • 公司股权变更后税务没有变更会有什么后果
  • 浅谈12 条用于 Linux 的 MySQL/MariaDB 安全最佳实践
  • 季度成本分析报告
  • 招待费专用发票需要认证吗
  • 广告公司物料报价清单
  • 常用的3个第三方类库
  • php获取路径和目录的方法
  • php如何获取当前时间
  • php实现的功能
  • 插件不支持是什么意思
  • 结构性存款随时可取么
  • python的多线程 吃cpu太厉害
  • 年金现值系数公式记忆
  • 贴现手续费计入哪个明细科目
  • 销售不动产差额征税可以开专票吗
  • 织梦相关文章调用
  • 个体工商户购买生育险有生育津贴吗
  • 借款需要缴纳个人所得税吗
  • 购入交易性金融资产的相关税费计入
  • 高新补助收入属于不征税收入吗
  • 无形资产的会计准则的相关规定
  • 营业税金及附加税率
  • 补缴税款需要交滞纳金吗
  • 折扣如何做账
  • 为什么预付账款可以通过应付账款核算
  • 公司账户美金入账后怎么做分录
  • 发票已到款未付怎么做账
  • 社区养老服务平台
  • sqlserver自动生成id
  • mysql字段什么意思
  • ubuntu20 vnc
  • win7复制文件
  • Computer Browser是什么进程,Computer Browser有什么用?
  • centos查找目录命令
  • centos6.5配置ssh
  • ssh客户端软件
  • win7屏幕刷新率怎么调高
  • skype登录不了一直转圈
  • android真机调试解析包错误
  • 完本小说 电子书地址
  • qt5 opengl
  • shell的简单实现
  • unity打包64位出错
  • jquery发送json
  • unity手柄圆盘
  • js原生dialog
  • 安卓开发例子
  • 宝鸡新车交易市场
  • 发票开票系统可以查询上一年发票吗?
  • 2021年福建医保什么时候交
  • 河北电子税务局怎么使用
  • 收缴和缴纳的区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设