Сшивание разных идентификаторов в один уникальный идентификатор - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть такие данные, где у меня есть хронологические журналы устройств и пользователей посетителей.Здесь вы можете видеть, что один и тот же человек использовал устройства «abc» и «def» и имеет два разных идентификатора пользователя «123» и «456».Мы можем сказать, что это один и тот же человек, потому что у него есть как минимум 2 пользователя на 1 устройстве (или в зависимости от того, как вы видите это 2 устройства с 1 пользователем).Пользователь '789', однако, сам по себе является другим человеком, насколько мы можем сказать,

+-------+------------+---------+
| date  | device ID  | user ID |
+-------+------------+---------+
| 2 Feb | abc        | 123     |
+-------+------------+---------+
| 3 Feb | abc        | 456     |
+-------+------------+---------+
| 4 Feb | def        | 456     |
+-------+------------+---------+
| 4 Feb | ghj        | 789     |
+-------+------------+---------+

Я пытаюсь закрепить его, назначив самый первый (хронологический) идентификатор пользователя этого человека.

Что я пытаюсь достичь, это:

+-------------+------------+------------+
| stitched ID | devices    | users      |
+-------------+------------+------------+
| 123         | [abc, def] | [123, 456] |
+-------------+------------+------------+
| 789         | [ghj]      | [789]      |
+-------------+------------+------------+

Как мне построить запрос?

1 Ответ

0 голосов
/ 06 февраля 2019

Я не знаю bigquery, но в реляционном «стиле» вы должны:

1> группировать по «общим» атрибутам,

2> получить «мин» идентификаторакак 'unique-id',

3> Я также добавлю новое представление, в котором для каждого "уникального" ключа вы добавляете "дублированные", поскольку их сохранение в виде строки может стать тяжелым при запросах.

Извините за не кодовый ответ, но это должно показать вам путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...