假设我的数据中有以下 json 变量数组:
pets
---
[{"type":"dog", "name":"fido"}, {"type":"cat", "name":"steve"}, {"type":"dog", "name":"carl"}]
[{"type":"dog", "name":"ellie"}, {"type":"fish", "name":"goldie"}]
[{"type":"cat", "name":"simone"}, {"type":"lizard", "name":"sparky"}]
我将如何构造一个 SQL 查询,以便我可以为每行提供一个狗名称数组,如下所示:
dog_names
---
["fido", "carl"]
["ellie"]
[]
目前,我得到的最远的是使用以下方法过滤数据:
filter(pets, r -> r.type= 'dog')
这可以正确过滤数组,并且在数组基数为 1 的情况下,允许我使用索引正确查询,但我想捕获所有名称(并且在没有找到狗时不会中断)。
澄清一下,宠物的数据类型是ROW。
根据用法,您似乎有
ROW
数组,因此您可以以类似的方式在过滤后的数组上使用 transform
:
transform(filter(pets, r -> r.type= 'dog'), r -> r.name)