Netezza SQL 查询中的字符串运算符

String Operators in Netezza SQL Query

我在构建 Netezza 查询的输出时遇到问题。我正在处理网络数据,需要能够计算接收流量的不同 URL。问题是大多数行包含 URL 个参数,需要在计数前去除。

这是我的 URL 的样子:

我想 return 是这样的:

我的查询如下。它运行没有错误,但没有产生我想要的结果。

SELECT UID, TIMESTAMP, SUBSTR(FULL_URL, 1, INSTR(FULL_URL, '?', -1) AS MY_URL
FROM MY.TABLE
LIMIT 100;

这是结果

你可以在这里看到,如果我的 URL 包含一个问号,我得到了我想要的确切结果。如果它不包含 URL 参数,那么它 return 什么都没有。

我也尝试过正则表达式方法,但这目前给我一个 Count field incorrect 错误。

SELECT UID, TIMESTAMP, REGEXP_REPACE(FULL_URL, (\.\+)(\/?)(\.\*), ) AS MY_URL
FROM MY.TABLE
LIMIT 100;

我还是 Netezza 的新手,我没有看到完成此操作所需的逻辑或运算符。谁能指出我正确的方向?

这应该有效:

create temp table myTable ( Full_URL varchar(5000));
insert into myTable values('www.site.com/page?utm_source=xxx&utm_campaign=yyy');
insert into myTable values('www.site.com/another?cmp_code=zzz&cmp_vendor=aaa');
insert into myTable values('www.site.com/page?cmp_code=nnn&cmp_vendor=bbb');
insert into myTable values('www.site.com/another');
insert into myTable values('www.site.com/something');  

select regexp_replace(Full_URL,'\?.*','')
from myTable