【发布时间】:2017-11-08 20:58:59
【问题描述】:
我正在处理 BigQuery,并希望查看用户在每个会话中过去的行为,直到他们达到转化,这由 result=1 表示。
现在,我将为 1 个用户提供一个表格示例。我还想为所有用户抽象它。请注意,visitId 对于每个 fullVisitorId 都是唯一的。
#t1
fullVisitorId visitId visitNumber page_views result
1 1214 4 11 0
1 112 5 9 0
1 1014 6 10 1
1 1511 7 10 0
1 1614 8 10 1
实际上,我希望查询在第一次转换后删除所有行,从而有效地留给我们:
#t2
fullVisitorId visitId visitNumber page_views result
1 1214 4 11 0
1 112 5 9 0
1 1014 6 10 1
如果该fullVisitorId 没有转化,则保留所有行。我可以使用以下 SQL 将其聚合为 1 行:
SELECT fullVisitorId,
MAX(visitNumber)-MIN(visitNumber) AS number_visits,
SUM(page_views)/number_visits AS pages_per_s,
FROM t2
GROUP BY fullVisitorId
这会给我我想要的。
#t3_visitor_past
fullVisitorId number_visits pages_per_s
1 3 10
请记住,我希望拥有任意数量的不同 fullVisitorId。
【问题讨论】:
标签: sql google-bigquery