У меня есть таблица Redshift, которая выглядит так:
id | metadata
---------------------------------------------------------------------------
1 | [{"pet":"dog"},{"country":"uk"}]
2 | [{"pet":"cat"}]
3 | []
4 | [{"country":"germany"},{"education":"masters"},{"country":"belgium"}]
- Все элементы массива имеют только одно поле.
- Нет никакой гарантии, что конкретное поле будет присутствовать в любом из элементов массива.
- Имя поля может повторяться в массиве
- Элементы массива могут быть в любом порядке
Я хочу вернуть таблицу, которая выглядит так:
id | field | value
------------------------
1 | pet | dog
1 | country | uk
2 | pet | cat
4 | country | germany
4 | education | masters
4 | country | belgium
Затем я могу объединить это с моими запросами к остальной части входной таблицы.
Я пробовал играть с функциями Redshift JSON, но не имея возможности писать функции/использовать циклы/иметь переменные в Redshift, я действительно не вижу способа сделать это!
Пожалуйста, дайте мне знать, если я могу прояснить что-нибудь еще.