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

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.kler.cn/a/280617.html

相关文章:

  • 第六届机器人与智能制造技术国际会议 (ISRIMT 2024)
  • 【C++ Primer Plus习题】6.4
  • 数据可视化大屏模板-美化图表
  • I get HttpClient.Timeout Error in C# OpenAI library
  • 【jvm】虚拟机栈会oom吗
  • 四,接口类型和网络协议
  • IO多路复用几种函数
  • html2canvas ios慎用和createImageBitmap ios慎用
  • MATLAB 计算三角形的外接圆心和半径(84)
  • el-form中使用v-model和prop实现动态校验
  • docker容器基本命令、docker进入容器的指令、容器的备份、镜像底层原理、使用commit命令制造镜像、将镜像推送到阿里云镜像仓库与私服仓库
  • Lodash——JavaScript中的工具库
  • 【Redis】Redis客户端——Jedis(Java)
  • JMeter与数据库交互:执行SQL查询性能测试
  • Javascript深拷贝常见实现方法
  • 【Qt】项目打包发布
  • k8s POD控制器
  • 【Java设计模式】非循环访问者模式:简化对象交互
  • Python算法工程师面试整理-数据结构
  • sql中exist和in的区别