繁体   English   中英

Bigquery - json_array 从嵌套的 arrays 中提取和计算元素

[英]Bigquery - json_array extract and count elements from a nested arrays

我的表有一个 JSON 字段,看起来像这样。 可以有任意数量的菜单类别和任意数量的项目

{
"menu": {
    "salad": [
        {
            "item": "russian salad"
        },
        {
            "item": "french salad"
        }
    ],
    "soups": [
        {
            "item": "french soup"
        },
        {
            "item": "english soup"
        },
        {
            "item": "english soup"
        }
    ]
}

可以有任意数量的菜单类别(沙拉、汤)以及每个类别中的任意数量的项目

salad | 2
soups | 3

我已经查看了自己之前的问题,但不确定如何修改以适应任意数量的类别和项目?

考虑以下方法

select key, array_length(split(values)) items
from `project.dataset.table`,
unnest(`bqutil.fn.json_extract_keys`(json_extract(col, '$.menu'))) key with offset 
join unnest(`bqutil.fn.json_extract_values`(json_extract(col, '$.menu'))) values with offset 
using(offset)          

如果应用于您问题中的示例数据 - output 是

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM