我拥有此类数据,其中包含访问者设备和用户的时间顺序日志。在这里,您可以看到同一个人使用了设备“ abc”和“ def”,并且具有两个不同的用户ID“ 123”和“ 456”。我们可以说是同一个人,因为他们在1台设备上至少有2个用户(或者看您如何看待2台设备上有1个用户)。据我们所知,用户“ 789”本身就是另一个人
+-------+------------+---------+
| date | device ID | user ID |
+-------+------------+---------+
| 2 Feb | abc | 123 |
+-------+------------+---------+
| 3 Feb | abc | 456 |
+-------+------------+---------+
| 4 Feb | def | 456 |
+-------+------------+---------+
| 4 Feb | ghj | 789 |
+-------+------------+---------+
我正在尝试通过分配此人的第一个(按时间顺序)用户ID来缝补他们。
我要实现的目标是:
+-------------+------------+------------+
| stitched ID | devices | users |
+-------------+------------+------------+
| 123 | [abc, def] | [123, 456] |
+-------------+------------+------------+
| 789 | [ghj] | [789] |
+-------------+------------+------------+
如何构建查询?
答案 0 :(得分:0)
我不知道bigquery,但在关系“样式”中,您应该:
1>按“常用”属性分组,
2>将ID的“最小值”作为“唯一ID”,
3>我还将添加一个新视图,在其中为每个“唯一”键添加“重复”键,因为在查询时将它们存储为字符串可能会很繁琐。
很抱歉非代码答案,但这应该向您显示方法。