google-analytics - 谷歌大查询 : number of sessions that visited a set of pages

标签 google-analytics google-bigquery bigquery-standard-sql

我一直在研究 GA 数据的(标准)SQL 查询,以查找包含两个 URL 之一的 session 数。但是,通过两个 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
要计算访问正则表达式定义的页面的 session 数,您可以使用以下 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

关于google-analytics - 谷歌大查询 : number of sessions that visited a set of pages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42720195/

相关文章:

javascript - Google-Big Query with JavaScript

sql - BigQuery:使用标准SQL从Google Analytics(分析)数据中选择星期

google-bigquery - 在 BigQuery/Standard SQL 中将 DATE 转换为 TIMESTAMP

java - 为 Android LibGDX 游戏屏幕实现 Google Analytics

google-analytics - 如何在 BigQuery 中确定购买前的天数?

javascript - 自定义变量 GA 的交易计数问题

javascript - Google 分析代码和带有 php header 位置的重定向

java - 将 'dryRun' 设置为 true 时,BigQuery 客户端库抛出 NPE

google-bigquery - 解决 BigQuery 中的 "Failed to parse input string"错误

javascript - 返回标准 SQL/BigQuery 结构并创建两列的 JS UDF