我没有找到使用 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 对象的数量。 有人有想法吗?
非常感谢,
尼古拉斯
我使用此语法循环遍历 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;
regexp_replace 函数在某些情况下工作
https://docs.aws.amazon.com/redshift/latest/dg/REGEXP_REPLACE.html