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

时间:2018-11-08 14:36:26

标签: google-bigquery standard-sql

我有以下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上引发错误

1 个答案:

答案 0 :(得分:2)

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

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

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