首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Unnest 2 levels大型查询数组

Unnest 2 levels大型查询数组
EN

Stack Overflow用户
提问于 2021-05-18 02:05:40
回答 2查看 49关注 0票数 1

考虑一个具有以下模式的BQ表

代码语言:javascript
复制
name
day
day.purchase  

和值

代码语言:javascript
复制
name     day              day.purchase
John    [1,2]  [ ['Coke', 'Fanta'], ['Pepsi', 'Fanta', 'Water'] ]

如何取消两个级别的嵌套,以便获得完整的表?

代码语言:javascript
复制
John 1 'Coke'
John 1 'Fanta'
John 2 'Pepsi'
John 2 'Fanta'
John 2 'Water'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-18 04:14:40

如果我正确地获得了您的模式和示例数据,那么可以这样做:

代码语言:javascript
复制
select name, id as day, purchase
from yourtable t, t.day, day.purchase      

如果应用于问题中的样本数据,则输出为

票数 1
EN

Stack Overflow用户

发布于 2021-05-18 02:13:49

对于所描述的数据模型,您只需使用:

代码语言:javascript
复制
select n.name, the_day, the_purchase
from names n cross join
     unnest(n.day) the_day cross join
     unnest(the_day.purchase) the_purchase;

对于所示的数据,我认为您有两个单独的列:

代码语言:javascript
复制
select n.name, day, purchase
from names n cross join
     unnest(n.days) day with offset nd join
     unnest(n.purchases) purchase with offset np
     on nd = np
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67574909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档