SQL,给连续的行加上标识序号

devtools/2024/12/23 2:46:01/

postgresql 数据库的表 tmp 有 2 个分组字段,source_id 和 event_user,将该表按 source_id 分组,组内按 event_date 排序后,event_user 相同的值会形成有序的小组:

idsource_idevent_userevent_date
11A05-03-2014
21A06-03-2014
31B07-03-2014
41B08-03-2014
51A09-03-2014
61A10-03-2014
71A11-03-2014
82A12-03-2014
92B13-03-2014
102A14-03-2014
112B15-03-2014
122B16-03-2014
现在要增加计算列SERIES_ID,在source_id内按顺序给每个有序小组加序号。
idsource_idSERIES_IDevent_userevent_date
111A05-03-2014
211A06-03-2014
312B07-03-2014
412B08-03-2014
513A09-03-2014
613A10-03-2014
713A11-03-2014
821A12-03-2014
922B13-03-2014
1023A14-03-2014
1124B15-03-2014
1224B16-03-2014

编写SPL代码:

A
1=post1.query("select id, source_id, SERIES_ID, event_user, event_date from data order by source_id,event_date")
2=A1.group@o(source_id).(~.group@o(event_user))
3=A2.conj@r(~.run( ~.run( SERIES_ID=get(1,#))))

A1:SQL取数,按source_id,event_date排序,其中SERIES_ID 为空。

A2:不排序,按source_id相邻的值分组,组内按 event_user 相邻的值再分小组。

A3:在大组内给每个小组赋予序号,合并各组到记录级。

SPL开源地址


http://www.ppmy.cn/devtools/99346.html

相关文章

RFID光触发标签在多行业的应用与效益差异

在当今数字化和智能化的浪潮下,RFID技术已成为众多行业优化运营、提升竞争力的关键手段。RFID光触发标签作为这一技术的创新成果,以其独特的性能特点,正逐渐在各个领域发挥着重要作用。 一、RFID光触发标签的特点与参数 (一&…

spark client mode cluster mode 区别 与选择

1、在我们使用spark-submit 提交spark 任务一般有以下参数 /bin/spark-submit \--class <main-class> \--master <master-url> \--deploy-mode <deploy-mode> \--conf <key><value> \... # other options<application-jar> \[application…

【深度学习】嘿马深度学习笔记第3篇:TensorFlow介绍,学习目标【附代码文档】

本教程的知识点为&#xff1a;深度学习介绍 1.1 深度学习与机器学习的区别 TensorFlow介绍 2.4 张量 2.4.1 张量(Tensor) 2.4.1.1 张量的类型 TensorFlow介绍 1.2 神经网络基础 1.2.1 Logistic回归 1.2.1.1 Logistic回归 TensorFlow介绍 总结 每日作业 神经网络与tf.keras 1.3 …

docker手动部署django项目Dockerfile编排-后端发布

1、首先创建一个桥接网络 docker network create auto 2、部署redis,提供celery的消息队列服务 docker run --name redis --restartalways -d --network auto -v redis:/data redis:alpine3、部署数据库 注意数据库账号密码 docker run --name mariadb --restartalways -d…

vue.config 基础代理配置

const webpack require(‘webpack’); const CompressionPlugin require(‘compression-webpack-plugin’) const PATH require(‘./src/utils/path.js’); module.exports { //部署应用包时的基本 URL publicPath: ‘./’, //build时输出的文件目录 outputDir: ‘dist’,…

观察者模式解析:实现对象间的舞蹈同步!

观察者模式&#xff08;Observer Pattern&#xff09;是一种行为型设计模式&#xff0c;允许对象在状态改变时通知多个依赖对象&#xff0c;并自动更新这些依赖对象的状态。 观察者模式主要用于实现对象间的一种一对多的依赖关系&#xff0c;让多个观察者对象同时监听某一个主…

黑神话:悟空-配置推荐

显卡推荐&#xff08;按类别整理&#xff09; 1. GTX 10系列、GTX 16系列&#xff1a; 如果希望体验光线追踪&#xff0c;建议根据预算升级到RTX 40系列显卡。对于1080p分辨率&#xff0c;至少需要RTX 4060才能流畅运行。 2. RTX 20系列&#xff1a; RTX 2060、RTX 2070&#…

git cherry-pick 用法

/* * cherry-pick */ git cherry-pick 允许开发者有选择地合并其他分支的提交到当前分支&#xff0c; 这对于解决代码冲突、修复bug以及在不同分支之间转移提交非常有用。 基本用法&#xff1a; 1.合并一个提交&#xff1a;通过指定提交的哈希值&#xff0c…