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

how do i count the number of elements in array when elements are objects in BigQuery StandardSql

我有以下json

{
  "CustomerId": "B0001",
  "Items": [
    {
      "ItemId": "00001",
      "ItemName": "Banana"
    },
    {
      "ItemId": "00001",
      "ItemName": "Orange"
    },
    {
      "ItemId": "00001",
      "ItemName": "apple"
    }
  ]
}

我想计算在这种情况下列应该 return 3 的项目数 我试过了

select ARRAY_LENGTH(Items) as Number_of_items2 

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

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

select ARRAY_LENGTH(SPLIT(Items, '},')) as Number_of_items2
FROM dataset.table

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