拼接不同的ID到一个唯一ID

问题描述 投票:0回答:1

我有这样的,我有访客的设备和用户的时间顺序记录数据。在这里,您可以看到同一人所使用的设备“ABC”和“高清”,有两个不同的用户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]      |
+-------------+------------+------------+

如何构建查询?

sql google-bigquery
1个回答
0
投票

我不知道的BigQuery但在关系“风格”,你应该:

1>组由“公共”的属性,

2>获得的ID的“分钟”为“唯一ID”,

3>我也将添加其中每个“独一无二”键你添加“复制”的人作为他们存储为字符串,在查询时可以变得沉重了一个新的观点。

对不起,非代码的答案,但这个应该告诉你的方式。

© www.soinside.com 2019 - 2024. All rights reserved.