我正在尝试用sql在big query内部进行一些数据转换。
假设我有三张table:
客户-有关客户的数据,如年龄等订阅-有关用户预订了哪些订阅的数据-有关客户如何与数字产品交互的数据。
我想用嵌套字段在一个表中收集这个。
我可以联接所有这些表,但我想将它们聚合到数组中。
所以,我得到的不是三张table,而是:
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
}]
当然,我在select中使用了array\u agg。当只添加一个表时,效果非常好。但是,当添加另一行时,我会得到重复的行,这是我不想要的。所以,我想我不应该在select中使用array\u agg,而是应该在其他地方使用。
但解决这个问题的最好办法是什么?
1条答案
按热度按时间ukxgm1gy1#
您可以使用子查询来构造字段。像这样: