Я пытаюсь выполнить преобразование данных внутри Big Query с помощью SQL.
Скажем, у меня есть три таблицы:
Клиент - данные о клиенте, такие как возраст и т. Д. Подписки - данные о том, какие подписки есть у пользователя. Взаимодействие - данные о том, как клиенты взаимодействуют с цифровыми продуктами.
Я бы хотел собрать это внутри одной таблицы, используя вложенные поля.
Я могу присоединиться ко всем этим таблицам, но я хотел бы объединить их в массивы.
Итак, вместо трех таблиц я получаю следующее:
id:123,
name:David,
age:30,
subscritions: [{
name:sub1
price:10
},
{
name:sub2
price:20
}],
engagment: [{
event:visited_product_x
time:2020-06-10
},
{
event:visited_product_y
time:2020-06-10
}]
Конечно, я использовал array_agg в SELECT. И это прекрасно работает при добавлении только одной таблицы. Однако при добавлении еще одной я получаю повторяющиеся строки, которые мне не нужны. Итак, я думаю, мне следует использовать array_agg не в SELECT, а где-то еще.
Но как лучше всего решить эту проблему?