Google bigquery 页面点击数-前面不带
我正试图找到一种方法来定位用户访问某个特定的hits.page.hostname,但之前的hits.page.hostname不是特定的主机。 我想使用像at和regex那样的带有lookbehind的GROUP_CONCAT,但我发现RE2没有lookbehind,所以我回到了原点Google bigquery 页面点击数-前面不带,google-bigquery,Google Bigquery,我正试图找到一种方法来定位用户访问某个特定的hits.page.hostname,但之前的hits.page.hostname不是特定的主机。 我想使用像at和regex那样的带有lookbehind的GROUP_CONCAT,但我发现RE2没有lookbehind,所以我回到了原点 有人有什么想法吗?我想你会更容易使用。通过使用UNNEST WITH OFFSET,然后使用array操作符,可以向后查看数组。比如说, #standardSQL SELECT date, totals.v
有人有什么想法吗?我想你会更容易使用。通过使用UNNEST WITH OFFSET,然后使用array操作符,可以向后查看数组。比如说,
#standardSQL
SELECT
date,
totals.visits AS total_visits
FROM
`MyProject.dataset.ga_sessions_*`
WHERE
PARSE_DATE('%Y%m%d', _TABLE_SUFFIX) BETWEEN
DATE_SUB(CURRENT_DATE(), INTERVAL 90 DAY) AND
DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY) AND
EXISTS (
SELECT 1 FROM UNNEST(hits) AS hit WITH OFFSET off
WHERE hit.page.hostname = 'foo' AND
NOT hits[SAFE_OFFSET(off - 1)].page.hostname = 'bar'
);
下面是试图保存您最初使用GROUP_CONCAT和后面的REGEX_匹配的想法 试试下面 legacySQL 选择 日期 totals.visions作为Totalvisions, 组_CONCAThits.page.hostname,>>在记录中作为序列 从表_DATE_RANGE[MySys:110909631.ga_sessions_u], 日期添加当前时间戳,-90,“天”, 日期\u添加当前\u时间戳,-1,“天” 具有REGEXP_MATCHCONCAT'>>',序列'>>','>>所需主机>>+' 而不是REGEXP_MATCHCONCAT'>>',sequence'>>,'>>RejectHost>>+DesiredHost>>+' 上面在hits.page.hostname中查找与DesiredHost的访问 REGEXP_MATCHCONCAT'>>',序列'>>','>>所需主机>>+' 但不包括DesiredHost与RejectHost之前的访问 REGEXP_MATCHCONCAT'>>',序列'>>','>>拒绝主机>>+期望主机>>+' 正如您在上面两个表达式中所看到的,您可以微调主机内的访问长度或设置任何其他更复杂的逻辑。希望你有个主意
希望你能把最初的想法重新付诸实践 选择date,totals.visions AS totalvisions,Group_concathits.page.hostname,>>在记录内按表[MySys:110909631.ga_sessions]的顺序,date_ADDCURRENT_TIMESTAMP,-90,'DAY',date_ADDCURRENT_TIMESTAMP,-1,'DAY',其中有regexp matchsequence,r'>digital | www.a | bmysite\.org'我选择了这个选项,效果非常好。谢谢你,我很高兴它成功了!如果这是您使用的,也请说明。