以下示例适用于BigQuery标准SQL
在维护结构其余部分的同时,如何从Dimension1.Dimension2.Dimension3.Field2和Dimension2.Dimension2.Field2重命名Field2?
#standardSQL
WITH `project.dataset.table` AS (
SELECT
STRUCT<field1 INT64, dimension2 STRUCT<field1 INT64, dimension3 STRUCT<field1 INT64, field3 INT64>>>
(dimension1.field1, STRUCT(dimension1.dimension2.field1, STRUCT(dimension1.dimension2.dimension3.field1, dimension1.dimension2.dimension3.field2))
) dimension1,
STRUCT<dimension2 STRUCT<field4 INT64>>(STRUCT(dimension2.dimension2.field2)) dimension2
FROM `project.dataset.table`
您可以使用下面的虚拟数据测试、播放上面的内容
#standardSQL
WITH `project.dataset.table` AS (
SELECT
STRUCT<field1 INT64, dimension2 STRUCT<field1 INT64, dimension3 STRUCT<field1 INT64, field2 INT64>>>(1, STRUCT(11, STRUCT(21, 22))) dimension1,
STRUCT<dimension2 STRUCT<field2 INT64>>(STRUCT(31)) dimension2
)
SELECT
STRUCT<field1 INT64, dimension2 STRUCT<field1 INT64, dimension3 STRUCT<field1 INT64, field3 INT64>>>
(dimension1.field1, STRUCT(dimension1.dimension2.field1, STRUCT(dimension1.dimension2.dimension3.field1, dimension1.dimension2.dimension3.field2))
) dimension1,
STRUCT<dimension2 STRUCT<field4 INT64>>(STRUCT(dimension2.dimension2.field2)) dimension2
FROM `project.dataset.table`
我收到错误消息说不支持重复的名称。…我怎样才能解决这个问题?
只需使用别名,如下例所示
SELECT
dimension1.dimension2.dimension3.field1 AS a,
dimension1.dimension2.field1 AS b,
dimension1.field1 AS c
FROM `project.dataset.table`