Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在BigQuery中查看整个会话路径?_Sql_Google Analytics_Google Bigquery - Fatal编程技术网

Sql 如何在BigQuery中查看整个会话路径?

Sql 如何在BigQuery中查看整个会话路径?,sql,google-analytics,google-bigquery,Sql,Google Analytics,Google Bigquery,我正在学习BigQuery中的标准sql,我有一个任务,我必须展示用户在进入签出后做了什么——他们访问了哪些特定的URL。我想出了这样的办法,但它只会告诉我前面的一步,我必须至少看到其中的5步。这可能吗?多谢各位 SELECT ARRAY( SELECT AS STRUCT hits.page.pagePath , LAG(hits.page.pagePath) OVER(ORDER BY i) prevPagePath FROM UNNEST(hits) hit

我正在学习BigQuery中的标准sql,我有一个任务,我必须展示用户在进入签出后做了什么——他们访问了哪些特定的URL。我想出了这样的办法,但它只会告诉我前面的一步,我必须至少看到其中的5步。这可能吗?多谢各位

  SELECT ARRAY(
    SELECT AS STRUCT hits.page.pagePath
      , LAG(hits.page.pagePath) OVER(ORDER BY i) prevPagePath
    FROM UNNEST(hits) hits WITH OFFSET i
  ) x
  FROM `xxxx.ga_sessions_20160801`
)
SELECT COUNT(*) as cnt, pagePath, prevPagePath
FROM path_and_prev, UNNEST(x) 
WHERE regexp_contains (pagePath,r'(checkout/cart)')
GROUP BY 2,3
ORDER BY
cnt desc

以下是BQ出口的官方GA shema: (只要一个提示,可以随意将其导出到一张表中(Excel或Google或其他任何内容),并体面地缩进,以便于理解嵌套:)

安全获取会话行为的唯一方法是获取hits.hitNumber。由于pagePath位于“点击”下的“页面”下,因此将始终指定hitnumber:)

由您决定,仅在填充的pagePath上进行筛选,但仍显示hitnumber值


告诉我解决方案是否与您的问题匹配,或者更正:)

使用
lag()
五次。我真的不明白,抱歉。我应该把hitNumber放在哪里?“用户进入结账后做了什么”,意思是每次结账后点击。要获得“之后”,hitnumber用作索引。选择hitnumber,其中pagePath不为空。按hitnumber的顺序,您将基本上获得您的用户会话路径(取决于您的筛选,在它之后只获得5)。您没有提到它,但是不要忘记使用唯一的id==>fullVisitorId+visitId。否则,您将在用户之间混合数据,我相信您已经在使用它,但以防万一。。。