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

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

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.mrgr.cn/news/12822.html

相关文章:

  • 重磅!中科院1区顶刊《Information Sciences》解除“On Hold”!
  • MySQL集群的基础部署及主从复制详解
  • 沃尔玛停止在 3 个城市使用无人机送货,将重点转移到达拉斯
  • 从数据库中查找单词
  • vue的vue.config.js中反向代理pathRewite的理解
  • FFmpeg实战:轻松在视频末尾添加黑屏,教程详解!
  • 10、Flink 动态表之更新和追加查询详解
  • 数据库-事务
  • 2.Linux命令
  • 一、单例模式
  • 第一周学习--联邦学习
  • 4 Python虚拟环境【详细解释】但【超级简单易懂!!!】
  • mysql覆盖索引和超大页解决
  • 网络通信编程UDP/TCP
  • Vue2路由守卫:解决路由传参页面刷新后参数消失的问题
  • IntelliJ IDEA智能代码补全​和集成AI助手说明及操作
  • uniapp video标签无法播放视频
  • C++-标准库 智能指针smart pointer
  • 端口号问题(开发)
  • 云微客短视频矩阵如何打造多元化的视频内容呢?