2017-01-27 4 views
0

redshiftを使用してjsonオブジェクトの配列をクエリする解決策が見つかりません。 各行について、私は、次のように列に格納されたJSONオブジェクトの配列を有する:JSON Redshift SQL - 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オブジェクトの数を抽出します。 誰でもアイデアはありますか?

どうもありがとう、

ニコラス

+0

この質問をチェックアウト...ユーザー定義関数ビットは、ここで適切であるかもしれない:http://stackoverflow.com/questions/41979669/expand-a-json-data-into-new-columns-in -a-generic-fashion-in-redshift – systemjack

答えて

1

私は赤方偏移の分野での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; 
関連する問題