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 数组的主要内容,如果未能解决你的问题,请参考以下文章
在 Python 中从 JSON 字符串中提取数据时出错(使用 Redshift)
使用 COPY 命令将数据从 JSON 文件复制到 Redshift
无法将“json_extract_path_text”(Redshift)与 sqlalchemy 一起使用? [关闭]