Google bigquery 计算BigQuery中的上一页路径

Google bigquery 计算BigQuery中的上一页路径,google-bigquery,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

我正在为主页热图提取数据,我只希望看到上一页是主页的页面视图

我的数据是导入的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

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

因为在查询中使用了TABLE\u DATE\u RANGE函数,我猜您使用的是旧SQL。在这种情况下,您可以使用LAG函数,它使您能够从窗口中的前一行读取数据。因此,如果您在窗口中按点击次数对每个会话的页面进行排序,则可以获得每个页面的上一页

以下查询将执行您想要的操作:

#legacySQL
SELECT Page, count(*) as pageviews
FROM(
   SELECT hits.page.pagePath as Page, 
          LAG(hits.page.pagePath, 1) OVER (PARTITION BY fullVisitorId, visitId, date ORDER BY hits.hitNumber ASC) as PreviousPage
   FROM (TABLE_DATE_RANGE([****.ga_sessions_], DATE_ADD(CURRENT_TIMESTAMP(), -4, 'DAY'), DATE_ADD(CURRENT_TIMESTAMP(), -1, 'DAY')))
   WHERE hits.type='PAGE'
)
WHERE PreviousPage='/yourHomePage'
GROUP BY Page
-- ORDER BY pageviews desc

您必须用实际的主页URI替换“/yourHomePage”。

下面是BigQuery标准SQL

标准SQL 选择页面,将*计为页面浏览量 从…起 选择hit.page.pagePath作为页面, LAGhit.page.pagePath,按fullVisitorId、visitId划分的分区上的1,按hit.HITNAMER ASC划分的日期顺序作为上一页 从'your_gau_sessions_table'中,取消测试命中率为命中率 WHERE hit.type='PAGE' 其中PreviousPage='/yourHomePage' 按页分组 -按页面浏览量排序说明

也考虑下面的版本,在这里您可以收集每个访问者/访问的整个路径,而不是用给定表达式用正则表达式< /p>过滤。 标准SQL 选择 全视, visitId, 字符串_AGGhit.page.pagePath,'>'按hit.hitNumber作为路径排序 从'your_gau_sessions_table'中,取消测试命中率为命中率 WHERE hit.type='PAGE' 按fullVisitorId、visitId分组 具有REGEXP_CONTAINSpath,r'/page1>/page1' -按1、2顺序订购


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

如果您在新浏览器选项卡中打开一个链接a,然后单击另一个链接b会怎么样?这样,基于hitNumber的查询将不会产生源于主页的b,尽管它产生了。