Google bigquery BQ使用包含条件给出不完整的结果
我正在使用Bigquery处理一些Adwords数据,更准确地说,从目标url提取所有url参数,以便更好地组织它,等等 我编写了以下查询以返回表中“DestinationURL”字段中可用的所有参数。详情如下:Google bigquery BQ使用包含条件给出不完整的结果,google-bigquery,Google Bigquery,我正在使用Bigquery处理一些Adwords数据,更准确地说,从目标url提取所有url参数,以便更好地组织它,等等 我编写了以下查询以返回表中“DestinationURL”字段中可用的所有参数。详情如下: SELECT Parameter FROM (SELECT NTH(1, SPLIT(Params,'=')) as Parameter, FROM (SELECT AdID, NTH(1, SPLIT(De
SELECT Parameter
FROM (SELECT NTH(1, SPLIT(Params,'=')) as Parameter,
FROM (SELECT
AdID,
NTH(1, SPLIT(DestinationURL,'?')) as baseurl,
split(NTH(2, SPLIT(DestinationURL,'?')),'&') as Params
FROM [adwords_accounts_ads.ads_all]
HAVING Params CONTAINS '='))
GROUP BY 1
运行它将给我6个参数。这是正确的,但不完整,因为在这个测试表中,我知道URL中还有两个其他参数没有获取。一个称为“组”,另一个称为“utm_内容”
现在如果我跑步:
SELECT Parameter
FROM (SELECT NTH(1, SPLIT(Params,'=')) as Parameter,
FROM (SELECT
AdID,
NTH(1, SPLIT(DestinationURL,'?')) as baseurl,
split(NTH(2, SPLIT(DestinationURL,'?')),'&') as Params
FROM [adwords_accounts_ads.ads_all]
HAVING Params CONTAINS 'p='))
GROUP BY 1
我得到显示的“组”参数
问题是:政府不应该这样做吗
"CONTAINS '='"
条件包括
"CONTAINS 'p='"
结果如何?对于“t=”而不是“=”也会发生同样的情况
有人知道我怎么解决这个问题吗?或者甚至如何从包含URL的字符串中提取所有参数
ps:使用LIKE产生完全相同的结果
谢谢 Split会创建一个重复的输出类型,您必须展平表格才能正确查看 在这里,我在
params
上使用了flatte,现在输出良好:
SELECT nth(1,SPLIT(Params,'=')) AS Param,
nth(2,SPLIT(Params,'=')) AS Value
FROM flatten(SELECT
AdID,
NTH(1, SPLIT(DestinationURL,'?')) AS baseurl,
split(NTH(2, SPLIT(DestinationURL,'?')),'&') AS Params
FROM
(SELECT 1 AS AdID,'http://www.example.com.br/?h=Passagens+Aereas&source=google&vt=0' AS DestinationURL)
HAVING Params CONTAINS '=',
params
)
产出:
+-----+--------+------------------+---+
| Row | Param | Value | |
+-----+--------+------------------+---+
| 1 | h | Passagens+Aereas | |
| 2 | source | google | |
| 3 | vt | 0 | |
+-----+--------+------------------+---+
注意:Web UI总是将结果展平,但如果选择目标表并取消选中“展平结果”,您将得到一个包含重复部分列的单行。请给我们一些示例URL。我注意到这些查询使用不同的输入表-adwords\u accounts\u ads.PT\u Flights\u all与adwords\u accounts\u ads.ads\u all-这能解释差异吗?@MoshaPasumansky这只是我在这里抄写时的一个拼写错误。表在两个基中都是相同的,唯一的变化是“包含”=“@Pentium10这里有一些:我刚刚替换了域,因为它是用于客户端的