Sql 在大查询中取消对数组的测试

Sql 在大查询中取消对数组的测试,sql,arrays,google-bigquery,Sql,Arrays,Google Bigquery,考虑包含数组的MWE表 Name Day.id Day.Purchase_list John [1,2] [ [10,10,5,5], [20,20,10,10] ] 一个非最新+交叉连接就足以 SELECT name, day.id, day.Purchase list FROM table, UNNEST(day) as day *Outcome* Name id Purchase_list John 1 [10, 10, 5,

考虑包含数组的MWE表

Name  Day.id       Day.Purchase_list
John  [1,2]  [ [10,10,5,5], [20,20,10,10] ]
一个非最新+交叉连接就足以

SELECT name, day.id, day.Purchase list 
FROM table, UNNEST(day) as day 

*Outcome* 

Name     id     Purchase_list 
John     1     [10, 10, 5, 5]    
John     2     [20, 20, 10, 10]
但是,我希望保留一行,并在列中展开信息,以确保结果是正确的

Name   Purchase_list_day1   Purchase_list_day2
John      [10,10,5,5]         [20,20,10,10] 

我如何才能达到预期的结果?

听起来你想引用数组

select cwe.name,
       day.purchase_list[safe_ordinal(1)] as Purchase_list_day1,
       day.purchase_list[safe_ordinal(2)] as Purchase_list_day2
from cwe;

选择名称、日期[偏移(0)]。采购清单为采购清单\u日期1、日期[偏移(1)]。采购清单为采购清单\u日期2完成工作,但看起来不太干净。有更好的解决方案吗?我认为你的解决方案足够简单和干净!什么是你认为你不喜欢的?