创建嵌套结构表

时间:2020-06-01 12:24:31

标签: google-bigquery presto amazon-athena

我想为我的数据库创建嵌套结构数组

类似这样的东西:

array(row(item row(departmentNumber bigint, itemNumber bigint, shelfCapacity row(qty double, precision   bigint)) 

location row(zone varchar, aisle bigint)))

下面我遇到的错误:

但这给了我这样的错误:

Unknown type: ROW(departmentNumber bigint, itemNumber bigint,shelfCapacity ROW )

我创建了一个示例SQL

WITH dataset AS (
  SELECT ARRAY[
    CAST(ROW('departmentNumber', 'itemNumber', CAST(ROW('qty', 'precision') AS ROW(qty double, precision bigint))) AS ROW(departmentNumber bigint, itemNumber bigint,shelfCapacity ROW ))
  ] AS items
)
SELECT * FROM dataset

1 个答案:

答案 0 :(得分:0)

不能100%确定为什么在语法中会重复使用“ departmentNumber”之类的标识符,但是在BigQuery中,ROW被称为STRUCT,您的查询可能会被重写为:

WITH dataset AS (
  SELECT ARRAY[
    STRUCT<departmentNumber int64, itemNumber int64,shelfCapacity STRUCT<qty float64, precision int64>> (
      1, 1, STRUCT(2.1, 100)), 
      (2, 2, STRUCT(3.1, 200))
  ] AS items
)
SELECT * FROM dataset

enter image description here