Как подсчитать количество элементов в массиве, когда элементы являются объектами в BigQuery StandardSql - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть следующий 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 

но это, очевидно, выдает ошибку при большом запросе

1 Ответ

0 голосов
/ 08 ноября 2018

Предполагая, что он на самом деле хранится в виде строки JSON, вы можете попробовать:

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

Это зависит от конкретного формата JSON, но если вам нужна более продвинутая логика обработки, вы можете использовать JavaScript UDF .

...