Sql 如何在BigQuery中查看整个会话路径?
我正在学习BigQuery中的标准sql,我有一个任务,我必须展示用户在进入签出后做了什么——他们访问了哪些特定的URL。我想出了这样的办法,但它只会告诉我前面的一步,我必须至少看到其中的5步。这可能吗?多谢各位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
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。否则,您将在用户之间混合数据,我相信您已经在使用它,但以防万一。。。