如何在Amazon Redshift中提取URL的utm_source与utm_campaign字段
在Amazon Redshift中从URL提取utm_source和utm_campaign字段
直接使用Redshift支持的REGEXP_SUBSTR函数即可实现需求,无需临时表,完整查询语句如下:
SELECT email_id, url, -- 提取utm_source参数的值 REGEXP_SUBSTR(url, 'utm_source=([^&]+)', 1, 1, 'e') AS utm_source, -- 提取utm_campaign参数的值 REGEXP_SUBSTR(url, 'utm_campaign=([^&]+)', 1, 1, 'e') AS utm_campaign FROM emailsends WHERE date > '2023-01-01'
逻辑说明:
- 正则表达式
utm_source=([^&]+):匹配utm_source=后直到下一个&(或字符串末尾)的所有字符,[^&]+表示匹配任意非&的字符,适配参数在URL任意位置的场景 - 函数参数
'e':指定返回正则捕获组(括号内部分)的内容,直接提取参数值,而非带前缀的整段字符串 - 若URL中不存在对应的utm参数,对应字段会返回
NULL,符合业务逻辑 - 日期改用
'2023-01-01'格式:Redshift对ISO标准日期解析更稳定,避免因系统日期格式设置差异导致的查询错误
内容的提问来源于stack exchange,提问作者user14452102
相关产品推荐
相关产品推荐

