【发布时间】:2015-03-04 16:56:45
【问题描述】:
我在 BigQuery 中工作,以了解有多少用户完成了特定页面路径(在会话中的任何时间点)。假设页面路径是第 1 页 -> 第 2 页 -> 第 3 页。页面必须按顺序排列。我可以使用 BQ 建立页面路径 - 但此方法仅适用于识别在会话中的任何时间点到达这些页面的用户。例如,第 1 页 -> 第 456 页 -> 第 2 页。
有什么想法吗?
(SELECT [date]
, CASE WHEN pages like '/Page1' then fullVisitorId end as [users]
, CASE WHEN pages like '/Page1>>/Page2' then fullVisitorId end as [path_users_2]
, CASE WHEN pages like '/Page1>>Page2>>Page3' then fullVisitorId end as [path_users_3]
, [path_type]
, [path]
, [product]
, [device.deviceCategory]
FROM
( SELECT [date]
, [fullVisitorId]
, [visitId]
, [visitNumber]
, group_concat(hits.page.pagePath,'>>') as [pages]
, 'New Pages' as [path_type]
, 'Upgrade' as [path]
, 'Professional' as [product]
FROM
(
TABLE_DATE_RANGE
( [XXXXXX.ga_sessions_]
, TIMESTAMP('2014-06-01')
, TIMESTAMP('2014-06-05') )
)
where
(REGEXP_MATCH(hits.page.pagePath,r'^/Page1($|/$|\?|/\?|%3F)'))
or (REGEXP_MATCH(hits.page.pagePath,r'^/Page2($|/$|\?|/\?|%3F)'))
or ( (REGEXP_MATCH(hits.page.pagePath,r'^/Page3($|/$|\?|/\?|%3F)'))
and hits.transaction.transactionId is not null
and hits.item.productSku is not null
and hits.item.itemRevenue is not null )
group each by [date]
, [fullVisitorId]
, [visitId]
, [visitNumber]
, [path_type]
, [path]
, [product]
, [device.deviceCategory]
)
group each by
[date]
, [path_type]
, [path]
, [product]
, [users]
, [path_users_2]
, [path_users_3]
, [device.deviceCategory]
)
【问题讨论】:
-
您能分享您的查询吗?您忘记添加第 2 页时间戳应该高于第 1 页时间戳的时间比较。
-
我刚刚发布了上面的代码。
标签: google-bigquery