sql - BigQuery:从数组创建表
问题描述
我想创建一个包含来自两个不同数组的两列的表。
数组 1:[1,2,3]
数组 2:[11,12,13]
所需表:
通过使用这个查询,我得到了 1 行
SELECT
[1,2,3] AS S1,
[11,12,13] AS S2
我尝试了 UNNEST,但得到了笛卡尔积
SELECT S1, S2
FROM
UNNEST([1,2,3]) AS S1,
UNNEST([11,12,13]) AS S2
如何从数组创建所需的表(图 1)?
谢谢
解决方案
一种方法使用连接和WITH OFFSET
:
SELECT S1, S2, o1, o2
FROM UNNEST([1, 2, 3]) s1 WITH OFFSET o1 LEFT JOIN
UNNEST([11, 12, 13]) S2 WITH OFFSET o2
ON o1 = o2;
UNNEST()
如果BigQuery 像其他一些数据库那样支持多个参数,那就太好了。
推荐阅读
- json - 如何在 Klarna 付款方式中集成 PayPal
- html - 如何摆脱 vuejs 中页脚下的边距
- java - 根据用户名从数据库表中打印用户信息
- angular - API 调用之间的 forkJoin() 延迟
- python - psycopg2.extensions.TransactionRollbackError:由于并发更新而无法序列化访问
- scala - 如何限制通过 Monix 发送 HTTP 获取请求?
- after-effects - 计算后效中两点之间的角度
- amazon-web-services - 来自另一个账户的 Cognito Identity 访问存储桶
- swift - @AppStorage 属性包装器无法使用 VoiceOver 进行切换
- javascript - 单击网页上的特定类名不起作用 JAVASCRIPT CHROME EXTENSION