当元素是 BigQuery StandardSql 中的对象时,如何计算数组中元素的数量

Ipk*_*iss 0 google-bigquery

我有以下 json

{
  "CustomerId": "B0001",
  "Items": [
    {
      "ItemId": "00001",
      "ItemName": "Banana"
    },
    {
      "ItemId": "00001",
      "ItemName": "Orange"
    },
    {
      "ItemId": "00001",
      "ItemName": "apple"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我想计算在这种情况下的项目数,该列应该返回 3 我已经尝试过

select ARRAY_LENGTH(Items) as Number_of_items2 
Run Code Online (Sandbox Code Playgroud)

但这显然会在 bigquery 上引发错误

Ell*_*ard 5

假设它实际上存储为 JSON 字符串,您可以尝试:

select ARRAY_LENGTH(SPLIT(Items, '},')) as Number_of_items2
FROM dataset.table
Run Code Online (Sandbox Code Playgroud)

这依赖于 JSON 的具体格式,但如果您需要更高级的处理逻辑,可以使用JavaScript UDF