首页 > 解决方案 > 当元素是BigQuery StandardSql中的对象时,我如何计算数组中的元素数

问题描述

我有以下 json

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

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

select ARRAY_LENGTH(Items) as Number_of_items2 

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

标签: google-bigquerybigquery-standard-sql

解决方案


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

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

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


推荐阅读