Google bigquery 别名嵌套结构列

Google bigquery 别名嵌套结构列,google-bigquery,Google Bigquery,如何将字段1别名为索引和字段2别名为值 查询给我一个错误: #standardsql with q1 as (select 1 x, ARRAY<struct<id string, cd ARRAY<STRUCT<index STRING,value STRING>>>> [struct('h1',[('1','a') ,('2','b')

如何将字段1别名为索引和字段2别名为值

查询给我一个错误:

#standardsql
with q1 as (select 1 x, ARRAY<struct<id string, cd ARRAY<STRUCT<index STRING,value STRING>>>>
                    [struct('h1',[('1','a')
                                 ,('2','b')
                                 ])
                          ,('h2',[('3','c')
                                 ,('4','d')
                                 ])] hits
       )


Select * from q1
ORDER by x

Error: Array element type STRUCT<STRING, ARRAY<STRUCT<STRING, STRING>>> does not coerce to STRUCT<id STRING, cd ARRAY<STRUCT<index STRING, value STRING>>> at [5:26]
非常感谢您花时间回复


干杯

当我尝试使用标准版本在BigQuery中模拟数据时,我通常会尽可能地命名所有变量和别名。例如,如果您这样构建数据,则数据可以正常工作:

with q1 as (
select 1 x, ARRAY<struct<id string, cd ARRAY<STRUCT<index STRING,value STRING>>>>  [struct('h1' as id,[STRUCT('1' as index,'a' as value) ,STRUCT('2' as index ,'b' as value)] as cd), STRUCT('h2',[STRUCT('3' as index,'c' as value) ,STRUCT('4' as index,'d' as value)] as cd)] hits
)

select * from q1
order by x
请注意,我已经构建了结构,并在其中放置了别名,以便在移除别名和结构时能够正常工作,但我发现这似乎是间歇性的。如果你完全描述了这些变量,那么它就会一直起作用


作为一项建议,我尝试逐块构建模拟数据。首先,我创建结构并测试它,以查看BigQuery是否接受它。验证程序为绿色后,我继续添加更多值。如果您试图一次构建所有内容,您可能会发现这是一项有点挑战性的任务。

当我尝试使用标准版本在BigQuery中模拟数据时,我通常会尽可能地命名所有变量和别名。例如,如果您这样构建数据,则数据可以正常工作:

with q1 as (
select 1 x, ARRAY<struct<id string, cd ARRAY<STRUCT<index STRING,value STRING>>>>  [struct('h1' as id,[STRUCT('1' as index,'a' as value) ,STRUCT('2' as index ,'b' as value)] as cd), STRUCT('h2',[STRUCT('3' as index,'c' as value) ,STRUCT('4' as index,'d' as value)] as cd)] hits
)

select * from q1
order by x
请注意,我已经构建了结构,并在其中放置了别名,以便在移除别名和结构时能够正常工作,但我发现这似乎是间歇性的。如果你完全描述了这些变量,那么它就会一直起作用

作为一项建议,我尝试逐块构建模拟数据。首先,我创建结构并测试它,以查看BigQuery是否接受它。验证程序为绿色后,我继续添加更多值。如果您试图同时构建所有内容,您可能会发现这是一项有点挑战性的任务。

standardsql 以q1为例 选择 1作为x, [ 结构'h1'作为id,[STRUCT'1'作为索引,'a'作为值,'2','b']作为cd, 结构'h2',[STRUCT'3'作为索引,'c'作为值,'4','d']作为cd ]命中率 选择* 从第一季度开始 -按x订购 或者下面可能更容易阅读

标准SQL 以q1为例 选择 1作为x, [ 结构'h1'作为id,[STRUCT'1','a','2','b']作为cd, 结构'h2',[STRUCT'3','c','4','d']作为cd ]命中率 选择* 从第一季度开始 -按x订购 标准SQL 以q1为例 选择 1作为x, [ 结构'h1'作为id,[STRUCT'1'作为索引,'a'作为值,'2','b']作为cd, 结构'h2',[STRUCT'3'作为索引,'c'作为值,'4','d']作为cd ]命中率 选择* 从第一季度开始 -按x订购 或者下面可能更容易阅读

标准SQL 以q1为例 选择 1作为x, [ 结构'h1'作为id,[STRUCT'1','a','2','b']作为cd, 结构'h2',[STRUCT'3','c','4','d']作为cd ]命中率 选择* 从第一季度开始 -按x订购
谢谢,这有助于我迭代原始查询库,这有助于我迭代原始查询库,这有助于我迭代原始查询库,这有助于我迭代原始查询库