マニュアル参照:9.15. JSON関数と演算子
JSON の値、数値として SELECT されるか?
'{ "a": [1,2,3] }'::json->'a'->1
この場合、2 が数値として取り出せるか?というとそうではないらしい
-> この演算子のまま、
以下のように CAST してはダメだ。
CAST('{ "a": [1,2,3] }'::json->'a'->1 AS NUMERIC)
[42846]:ERROR:型jsonからnumericへの型変換ができません
->> 演算子で
文字列として抽出してからでないと、
CAST('{ "a": [1,2,3] }'::json->'a'->>1 AS NUMERIC)