Простое применение функции FLATTEN
может работать здесь. Функция создает боковое представление с разнесенными строками из каждой исходной строки. Для плоских объектов все пары значений ключа разбиты на одну строку.
Использование части KEY
сглаженного результата обеспечивает часть Table
требуемого вывода, а часть VALUE
обеспечивает Entries
. Поскольку FLATTEN
создает боковое представление, у вас все еще есть доступ к значениям строки предыдущей исходной таблицы, чтобы продолжить сохранять столбец Name
в результате.
Пример запроса, который выполняет преобразование:
SELECT
t.name AS "Name",
lv.key AS "Table",
lv.value AS "Entries"
FROM
data_table t,
LATERAL FLATTEN(input => t.number) lv