当前位置: 首页> 科技> 能源 > SQL,给连续的行加上标识序号

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

时间:2025/9/8 14:28:50来源:https://blog.csdn.net/smilejingwei/article/details/141469901 浏览次数:0次

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开源地址

关键字:SQL,给连续的行加上标识序号

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: