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 数组的主要内容,如果未能解决你的问题,请参考以下文章

从 Redshift 表中获取 JSON 数据

在 Python 中从 JSON 字符串中提取数据时出错(使用 Redshift)

使用 COPY 命令将数据从 JSON 文件复制到 Redshift

在 Redshift 中解析 JSON 6 级深度

无法将“json_extract_path_text”(Redshift)与 sqlalchemy 一起使用? [关闭]

从 Amazon Redshift 中的 json 数组中提取特定键