【发布时间】:2021-02-26 05:49:28
【问题描述】:
我正在尝试从从 Google Analytics(分析)数据导入 BigQuery 的表中构建一个矩阵。该表表示网站上的点击,其中包含 session_ID 以及一些属性,例如 url、时间戳等。此外,还有一些基于用户定义操作的元数据,我们将其称为事件。下面是一个表格示例。
session_id hit_timestamp url event_category
1 11:12:23 url134 event1
1 11:14:23 url2234 event2
1 11:16:23 url_target null
2 03:12:11 url2344 event1
2 03:14:11 url43245 event2
3 09:10:11 url5533 event2
3 09:09:11 url_target null
4 08:08:08 url64356 event2
4 08:09:08 url56456 event2
4 08:10:08 url_target null
预期的结果应该类似于下表。
session_id event1 event2 target
1 1 1 1
2 0 0 0
3 0 0 0
4 0 2 1
请注意,任何不导致 url_target 的事件都应表示为零,包括目标。这意味着查询应该查看时间戳以通过查看它们的时间戳来检查任何事件是否跟在 url_target 之后。例如,event2 后面没有“url_target”,这就是我们将其表示为零的原因。 session_id 3 中的情况相同,因为 event2 后面没有 url_target,请注意 url_target 的时间戳在 event2 之前,而不是在它之后。因此用零表示。
如果在构建 SQL 查询以生成该矩阵方面提供任何帮助,我将不胜感激。我只能按 session_id 分组,然后使用“count”执行计数事件,但无法找到写入 SQL 查询以匹配时间戳并检查其他字段。
【问题讨论】:
-
您只有两个或更多活动吗?如果更多 - 它们的数量和名称是静态的还是动态的?你可以在同一个会话中有多个 url_target 吗?
标签: sql datetime count google-bigquery pivot