Google analytics Google BigQuery:访问一组页面的会话数
我一直在研究GA数据的(标准)SQL查询,以查找包含两个URL之一的会话数。但是,通过这两个URL进行过滤并从hits.page.pagePath中提取是我遇到问题的地方 这是一个向我提供错误的查询示例:Google analytics Google BigQuery:访问一组页面的会话数,google-analytics,google-bigquery,bigquery-standard-sql,Google Analytics,Google Bigquery,Bigquery Standard Sql,我一直在研究GA数据的(标准)SQL查询,以查找包含两个URL之一的会话数。但是,通过这两个URL进行过滤并从hits.page.pagePath中提取是我遇到问题的地方 这是一个向我提供错误的查询示例: SELECT date, COUNT(visitId) AS visits FROM `123456789.ga_sessions_20170219`,`123456789.ga_sessions_20170220` WHERE REGEXP_CONTAINS(hits.page.pa
SELECT
date, COUNT(visitId) AS visits
FROM `123456789.ga_sessions_20170219`,`123456789.ga_sessions_20170220`
WHERE
REGEXP_CONTAINS(hits.page.pagePath, r"^/(apples|oranges).html.*")
GROUP BY date
而直接变平也不起作用:
SELECT
date, COUNT(visitId) AS visits
FROM `123456789.ga_sessions_20170219`,`123456789.ga_sessions_20170220`
WHERE
REGEXP_CONTAINS((
SELECT pagePath
FROM UNNEST(
SELECT page
FROM UNNEST(hits) AS page) AS pagePath), r"^/(apples|oranges).html.*")
GROUP BY date
另外,我不确定这种方法是否能提供我想要的数据。首先,在标准SQL中,不能使用逗号对
联合
表(逗号表示交叉连接
)-可以使用\u表后缀
或直接联合所有
。
要计算在正则表达式定义的页面上命中的会话数,可以使用以下EXISTS
子句:
SELECT
date, COUNT(visitId) AS visits
FROM
(SELECT * FROM `123456789.ga_sessions_20170219` UNION ALL
SELECT * FROM `123456789.ga_sessions_20170220`)
WHERE
EXISTS(
SELECT 1 FROM UNNEST(hits) h
WHERE REGEXP_CONTAINS(h.page.pagePath, r"^/(apples|oranges).html.*"))
GROUP BY date
明亮的谢谢正如您所看到的,我的一些问题来自于从遗留SQL的移植。你的例子非常有效——我已经根据我在GA中看到的结果进行了验证。