【发布时间】:2020-05-29 09:04:51
【问题描述】:
我在使用 listagg 方法获得的按时间 asc 排序的列值中有一个所有类型的页面事件列表。
listagg(page,';') within group (order by time)
我想获取与正则表达式匹配的最后一个匹配项的出现
regexp_substr(event_list,'/step[0-9]+[^;]*')
根据文档“一个正整数,表示在 source_string 中开始搜索的位置。该位置基于字符数,而不是字节数,因此多字节字符被计为单个字符。默认值为 1。如果position 小于 1,从 source_string 的第一个字符开始搜索。如果 position 大于 source_string 的字符数,则结果为 source_string。"
基于此,我需要知道我不知道的确切出现次数。
在这种情况下如何获得最后一场比赛?
例如:
/step1;somethging;somethig;/step2;something;/step3;something;
我要匹配 step3。
PS:按时间顺序排序并获得第一场比赛不是这里的选择。
【问题讨论】:
标签: sql amazon-redshift data-warehouse regexp-substr listagg