我在 Google BigQuery 中有一个表,其中有重复的记录,我已按照https://cloud.google.com/bigquery/docs/nested-repeated上的指南成功创建了该表,并且已填充带有一些测试数据的表使用
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)
]
);
Run Code Online (Sandbox Code Playgroud)
(等等)并且表已成功填充,我也可以使用以下命令查询数据
select * from <dataset>.<table>
Run Code Online (Sandbox Code Playgroud)
并返回所有重复和非重复的字段。只要查询中没有指定重复字段,我也可以成功查询表中的非重复字段。但是,例如,当我想在查询中包含特定的重复字段时(并且我正在遵循https://cloud.google.com/bigquery/docs/legacy-nested-repeated上的指南)
SELECT normalfield1, normalfield2, normalfield3,
repeatedData.field1, repeatedData.field2, repeatedData.field3
FROM `profile_dataset.profile_betdatamultiples`;
Run Code Online (Sandbox Code Playgroud)
我收到错误
Cannot access field <field name> on a value with type ARRAY<STRUCT<fieldname1 STRING, fieldname2 FLOAT64, fieldname3 NUMERIC, ...>> at [8:14]"
Run Code Online (Sandbox Code Playgroud)
(令人烦恼的是,GCP 截断了错误消息,所以我看不到全部内容)
对于如何继续这里有什么建议吗?
谢谢!
以下是 BigQuery 标准 SQL
#standardSQL
SELECT normalfield1, normalfield2, normalfield3,
data.field1, data.field2, data.field3
FROM `project.profile_dataset.profile_betdatamultiples`,
UNNEST(repeatedData) data
Run Code Online (Sandbox Code Playgroud)
如果适用于您问题中的样本数据
输出是
| 归档时间: |
|
| 查看次数: |
1463 次 |
| 最近记录: |