google-bigquery - 当元素是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 上引发错误
解决方案
假设它实际上存储为 JSON 字符串,您可以尝试:
select ARRAY_LENGTH(SPLIT(Items, '},')) as Number_of_items2
FROM dataset.table
这依赖于 JSON 的特定格式,但如果您需要更高级的处理逻辑,您可以使用JavaScript UDF。
推荐阅读
- javascript - 如何在 Forloop 中使用动态键访问 JS 对象值
- c# - 输入向上不一致,并且工作了一半的时间
- python - Alembic 迁移无法正确生成 UUID
- c++ - 尝试使用继承和模板来实现 CRTP。Visual Studio 正在生成编译器错误
- c++ - posix_spawn() :使用 posix_spawn() 时的错误处理问题
- terraform - 如何在 Datadog 的 terraform 中为警告和警报设置单独的消息?
- python - 验证用户并生成/存储会话 ID
- java - PowerMockito.whenNew() 没有被嘲笑,原始方法是用junit 5调用的
- php - 上传的文件的临时名称没有进入 blueimp jQuery 文件上传
- java - 自动完成TextView在android中给出错误的输出