#amazon-redshift
Вопрос:
У меня есть данные для красного смещения:
column id: 210396
column inputs: [{"desc": "What is your credit card number? I promise to keep it real secure like.", "name": "cc", "type": "string", "regex": "\d ", "max_length": 16, "min_length": 1}, {"max": "666", "min": "4", "desc": "How tall are you?", "name": "height", "type": "int"}, {"desc": "A nurse went to scribble a note when she realized she was trying to write with a rectal thermometer. Damn it, she said, some asshole has my pen.", "name": "likescake", "type": "bool"}]
Мне нужно проанализировать JSON и проанализировать каждый элемент «имя», «значения» в каждой строке.
Я создаю этот запрос, чтобы выполнить эту операцию:
CREATE TEMP TABLE test_all_values AS
(
SELECT c.*, d.desc, d.name, d.values
FROM (
SELECT id, created, JSON_PARSE(inputs) AS inputs_super
FROM appen_collect.staticprompts
WHERE prompttype = 'input'
) AS c,
c.inputs_super AS d
ORDER BY created DESC
LIMIT 10
);
SELECT DISTINCT c.id, c.desc, c.name, o AS value FROM test_all_values c, c.values AS o;
С помощью временной таблицы я получил данные в этом формате:
column id: 210396
column created: 2021-09-01 05:42:15.80726
column inputs_super: [{"desc":" Please check the pledge box, Pledge content","name":"pledge","type":"dropdown","values":["Agree","Disagree"]}]
column desc: " Please check the pledge box, Pledge content"
column name: "pledge"
column values: ["Agree","Disagree"]
Но мне нужно проанализировать список «значений» при красном смещении и создать строку для каждого элемента списка.
Пример:
column id: 210396
column created: 2021-09-01 05:42:15.80726
column inputs_super: [{"desc":" Please check the pledge box, Pledge content","name":"pledge","type":"dropdown","values":["Agree","Disagree"]}]
column desc: " Please check the pledge box, Pledge content"
column name: "pledge"
column values: ["Agree"]
column id: 210396
column created: 2021-09-01 05:42:15.80726
column inputs_super: [{"desc":" Please check the pledge box, Pledge content","name":"pledge","type":"dropdown","values":["Agree","Disagree"]}]
column desc: " Please check the pledge box, Pledge content"
column name: "pledge"
column values: ["Disagree"]
Как вы видите, я использую временную таблицу для анализа [«Согласен»,»Не согласен»] (из «значений») для каждой строки для каждого элемента из списка (этот список супертипный).
Как я могу оптимизировать свой запрос без создания временной таблицы?
Спасибо большое за совет!