当前位置: 首页 > news >正文

SQL,在组内根据相邻行修改取值 null 的列

postgreySQL 库表按 date、company 排序如下,column3 部分值为 NULL。

datecompanycolumn3
2004-01-01A5
2004-01-01BNULL
2004-01-01CNULL
2004-01-02ANULL
2004-01-02B7
2004-01-02CNULL
2004-01-03A6
2004-01-03B7
2004-01-03C9
2004-01-04ANULL
2004-01-04BNULL
2004-01-04CNULL

要求:对 company 相同的记录,从前往后处理每组数据,首先删除记录直到遇到第一个 column3 非 NULL 的记录;再把后续等于 NULL 的 column3 改为前面非 NULL 的值,直到遇到下一个非 NULL 的值,然后继续本过程。

datecompanycolumn3
2004-01-01A5
2004-01-02A5
2004-01-02B7
2004-01-03A6
2004-01-03B7
2004-01-03C9
2004-01-04A6
2004-01-04B7
2004-01-04C9

编写SPL代码

1=post1.query("select * from tb order by company,date")
2=A1.run(if( company==company[-1], column3=ifn(column3,column3[-1])))
3return A1.select(column3).sort(date)

A1:通过JDBC查询数据库,按company、date排序。

A2:处理每条记录:同组记录时,如果本行的 column3 非 null 则不修改,为 null 则改为上一条。

A3:再选出 column3 非 null 的记录,按 date 排序,返回结果。

Java 集成 SPL 可参考 Java 如何调用 SPL 脚本

SPL开源地址

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Remote Connection Software,远程连接软件
  • C语言习题~day32
  • floodfill算法(二)
  • Python数据分析实现滚动统计
  • 决策树算法上篇
  • 数据结构——树(终极版)
  • 如何通过OceanBase的多级弹性扩缩容能力应对业务洪峰
  • Mac笔记本上查看/user/目录下的文件的几种方法
  • 搭建VUE前端项目流程——Node.js 、Yarn、npm、Vue、Vite、Webpack
  • 一个有趣的“苦无”测试探针笔的设计
  • Go语言开发im-websocket服务和vue3+ts开发类似微信pc即时通讯
  • jenkins入门
  • Java集合(八股)
  • 沉浸式利用自然语言无代码开发工具生成式AI产品应用(上)
  • 嵌入式软件工程师:科技浪潮中的关键角色
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • Laravel 中的一个后期静态绑定
  • Mac转Windows的拯救指南
  • nodejs:开发并发布一个nodejs包
  • Python进阶细节
  • QQ浏览器x5内核的兼容性问题
  • ReactNativeweexDeviceOne对比
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • SegmentFault 2015 Top Rank
  • V4L2视频输入框架概述
  • Vim 折腾记
  • 前嗅ForeSpider中数据浏览界面介绍
  • 全栈开发——Linux
  • 实现菜单下拉伸展折叠效果demo
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • MyCAT水平分库
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • (2022 CVPR) Unbiased Teacher v2
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (办公)springboot配置aop处理请求.
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (每日一问)操作系统:常见的 Linux 指令详解
  • (一)插入排序
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .net中的Queue和Stack
  • .vimrc 配置项
  • //解决validator验证插件多个name相同只验证第一的问题
  • @Autowired @Resource @Qualifier的区别
  • @Builder注释导致@RequestBody的前端json反序列化失败,HTTP400
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • @RequestBody的使用
  • @RestController注解的使用
  • [2013][note]通过石墨烯调谐用于开关、传感的动态可重构Fano超——