PostgreSQL: вытащить в отдельные строки значения из списка, который является значением для ключа JSON

Надеюсь, что понятно объяснил проблему.

У меня есть JSON в RedShift:

{"desc":"Select the setting that you will do the recordings under","name":"ambient","values":["","Indoors + High + Loud","Indoors + High + Normal","Indoors + Low + Normal","Indoors + Low + LowVolume","Outdoors + High + Normal","Outdoors + Low + Loud","Outdoors + Low + Normal","Outdoors + Low + LowVolume"]}

Мне надо сделать так, чтобы для каждой записи из списка в значении к values была отдельная строчка.

Сейчас я делаю такой запрос:

WITH all_values AS (
        SELECT 
               json_extract_path_text(json_extract_array_element_text(inputs, 0, True), 'name') AS name,
               json_extract_path_text(json_extract_array_element_text(inputs, 0, True), 'desc') AS description,
               json_extract_path_text(json_extract_array_element_text(inputs, 0, True), 'values') AS value
               
        FROM source.table
        WHERE
            prompttype = 'input'
        GROUP BY name, description, value
        LIMIT 10
       )
SELECT * FROM all_values;

Но получаю такой результат:

CREATE TABLE t1 (name, description, value);
INSERT INTO t1 VALUES ('Select the setting that you will do the recordings under','ambient','["","Indoors + High + Loud","Indoors + High + Normal","Indoors + Low + Normal","Indoors + Low + LowVolume","Outdoors + High + Normal","Outdoors + Low + Loud","Outdoors + Low + Normal","Outdoors + Low + LowVolume"]');

То есть список просто кладется, а не вытаскивается каждый элемент списка в отдельную строчку (при этом name и descriptions для всех должны быть одинаковыми).

Я в принципе понимаю, что это нормальный результат для моего запроса. Но не знаю как сделать правильный запрос, чтобы решить задачу. (


Ответы (0 шт):