JSON Redshift SQL - 迭代 json 数组

问题描述 投票:0回答:2

我没有找到使用 redshift 查询 json 对象数组的解决方案。 对于每一行,我都有一个 json 对象数组存储在列中,如下所示:


[{'a':x,'b':y,'type':z},{'a':x,'b':y,'type':w},{'a':x,'b':y,'type':z},{a:x,b:y,type:z}]

对于每一行,我想在新列中提取“type”z 对象的数量。 有人有想法吗?

非常感谢,

尼古拉斯

sql arrays json amazon-redshift
2个回答
2
投票

我使用此语法循环遍历 redshift 字段中的 json 数组。

CREATE TEMP TABLE seq
(i int); INSERT INTO seq VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8);

SELECT distinct 
json_extract_path_text(json_extract_array_element_text(yourfieldname, seq.i),'type') as type
FROM yourtablename, seq AS seq
--- arman why is this less than the array
WHERE seq.i < JSON_ARRAY_LENGTH(yourfieldname)

;

DROP TABLE seq;

0
投票

regexp_replace 函数在某些情况下工作

https://docs.aws.amazon.com/redshift/latest/dg/REGEXP_REPLACE.html

© www.soinside.com 2019 - 2024. All rights reserved.