计算BigQuery中的上一页路径

Ben*_*n P 0 google-bigquery

我正在获取主页热点图的数据,并且我只希望看到前一页为主页的综合浏览量

我的数据是导入的Google Analytics(分析)表格-BQ中不存在“上一页路径”指标,那么我该如何解决呢?

这是我的查询的基本示例:

SELECT
  hits.page.pagePath
FROM (TABLE_DATE_RANGE([***.ga_sessions_],
      DATE_ADD(CURRENT_TIMESTAMP(), -4, 'DAY'),
      DATE_ADD(CURRENT_TIMESTAMP(), -1, 'DAY')))
WHERE ? -- Where previous page path was the homepage?
GROUP BY hits.page.pagePath
Run Code Online (Sandbox Code Playgroud)

我可以在WHERE子句中使用什么来定义上一个页面路径?

Mik*_*ant 5

以下是BigQuery标准SQL

#standardSQL
SELECT Page, COUNT(*) AS PageViews
FROM(
   SELECT hit.page.pagePath AS Page, 
          LAG(hit.page.pagePath, 1) OVER (PARTITION BY fullVisitorId, visitId, DATE ORDER BY hit.hitNumber ASC) AS PreviousPage
   FROM `your_ga_sessions_table`, UNNEST(hits) AS hit
   WHERE hit.type='PAGE'
)
WHERE PreviousPage='/yourHomePage'
GROUP BY Page
-- ORDER BY PageViews DESC   
Run Code Online (Sandbox Code Playgroud)

还请考虑以下版本,在该版本中,您可以收集每个访问者/访问者的整个路径,而不是使用正则表达式按任何给定的路径模式进行过滤

#standardSQL
SELECT 
  fullVisitorId, 
  visitId,
  STRING_AGG(hit.page.pagePath, '>' ORDER BY hit.hitNumber) AS path
FROM `your_ga_sessions_table`, UNNEST(hits) AS hit
WHERE hit.type='PAGE'
GROUP BY fullVisitorId, visitId
HAVING REGEXP_CONTAINS(path, r'/page1>/page1')
-- ORDER BY 1, 2  
Run Code Online (Sandbox Code Playgroud)

通过正确构造正则表达式,您可以查找任何长度和顺序等的任何页面序列,以支持例如漏斗分析