Google BigQuery:访问一组页面的会话数
Google BigQuery : number of sessions that visited a set of pages
我一直在对 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.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 中对 UNION
表格使用逗号(逗号表示 CROSS JOIN
)- 您可以使用 _TABLE_SUFFIX
或直接使用 UNION ALL
反而。
并计算命中由正则表达式定义的页面的会话,您可以使用以下 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
我一直在对 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.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 中对 UNION
表格使用逗号(逗号表示 CROSS JOIN
)- 您可以使用 _TABLE_SUFFIX
或直接使用 UNION ALL
反而。
并计算命中由正则表达式定义的页面的会话,您可以使用以下 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