Google bigquery 我无法在Google BigQuery表中查询重复字段

Google bigquery 我无法在Google BigQuery表中查询重复字段,google-bigquery,Google Bigquery,我在GoogleBigQuery中有一个表,其中有重复的记录,我按照上的指南成功地创建了该表,并使用 INSERT INTO `<project>.<dataset>.<table>` (<list of fields, ending with repeated record name>) VALUES ( "string1", false, 200.0, "string2", 0.2, 2.345, false, "202

我在GoogleBigQuery中有一个表,其中有重复的记录,我按照上的指南成功地创建了该表,并使用

INSERT INTO `<project>.<dataset>.<table>` (<list of fields, ending with repeated record name>)
VALUES
    (
        "string1", false, 200.0, "string2", 0.2, 2.345, false, "2020-01-02 12:34:56",
        [
            ("repeated field str1", CAST(2.01 AS FLOAT64), CAST(201 as NUMERIC), false),
            ("repeated field str2", CAST(4.01 AS FLOAT64), CAST(702 as NUMERIC), true)
        ]
    );
我犯了一个错误

Cannot access field <field name> on a value with type ARRAY<STRUCT<fieldname1 STRING, fieldname2 FLOAT64, fieldname3 NUMERIC, ...>> at [8:14]"
令人恼火的是,GCP截断了错误消息,所以我看不到所有信息

对于如何在这里进行,有什么建议吗


谢谢

我用以下代码重新创建了表:

将“临时实验”表创建为 选择string1 s1、false b、200.0 i1、string2 s2、0.2 f1、2.345 f2、false b2、TIMESTAMP2020-01-02 12:34:56 t1、, [ 结构重复字段str1为s1,CAST2.01为FLOAT64为f2,CAST201为数字为n1,false为b, 结构重复字段str2,CAST4.01为FLOAT64,CAST702为数字,true ]AS b1 现在,我可以像这样查询特定的嵌套行:

选择s1、b、s2 ,b1[OFFSET0].s1作为arr_s1,b1[OFFSET0].f2,b1[OFFSET0].n1 来自临时实验`
您可能希望取消测试而不是[OFFSET0],但问题并没有说明您希望得到什么结果。

我用以下代码重新创建了表:

将“临时实验”表创建为 选择string1 s1、false b、200.0 i1、string2 s2、0.2 f1、2.345 f2、false b2、TIMESTAMP2020-01-02 12:34:56 t1、, [ 结构重复字段str1为s1,CAST2.01为FLOAT64为f2,CAST201为数字为n1,false为b, 结构重复字段str2,CAST4.01为FLOAT64,CAST702为数字,true ]AS b1 现在,我可以像这样查询特定的嵌套行:

选择s1、b、s2 ,b1[OFFSET0].s1作为arr_s1,b1[OFFSET0].f2,b1[OFFSET0].n1 来自临时实验`
您可能希望取消测试而不是[OFFSET0],但问题并没有说明您希望得到什么结果。

下面是针对BigQuery标准SQL的

#standardSQL
SELECT normalfield1, normalfield2, normalfield3, 
  data.field1, data.field2, data.field3
FROM `project.profile_dataset.profile_betdatamultiples`,
UNNEST(repeatedData) data   
是否适用于您问题中的样本数据

输出为


下面是BigQuery标准SQL

#standardSQL
SELECT normalfield1, normalfield2, normalfield3, 
  data.field1, data.field2, data.field3
FROM `project.profile_dataset.profile_betdatamultiples`,
UNNEST(repeatedData) data   
是否适用于您问题中的样本数据

输出为


太好了,正是我需要的。谢谢太好了,正是我需要的。谢谢谢谢-上面的最新版本是这里的关键,但我会调查你对偏移量的建议,看看结果如何比较。谢谢-上面的最新版本是这里的关键,但我会调查你对偏移量的建议,看看结果如何比较。
#standardSQL
SELECT normalfield1, normalfield2, normalfield3, 
  data.field1, data.field2, data.field3
FROM `project.profile_dataset.profile_betdatamultiples`,
UNNEST(repeatedData) data