JSON Redshift SQL - 遍历 json 数组

Posted

技术标签:

【中文标题】JSON Redshift SQL - 遍历 json 数组【英文标题】:JSON Redshift SQL - Iterate through array of json 【发布时间】:2017-01-27 15:14:13 【问题描述】:

我没有找到使用 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]

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

非常感谢,

尼古拉斯

【问题讨论】:

看看这个问题...用户定义的功能位可能在这里是合适的:***.com/questions/41979669/… 【参考方案1】:

我已使用此语法在 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;

【讨论】:

以上是关于JSON Redshift SQL - 遍历 json 数组的主要内容,如果未能解决你的问题,请参考以下文章