колонки. Запрос усложняется тем, что изначально поле имеет тип text. Я его сначала в json перевожу, но дальше не идет. Подскажите, как можно сделать?
create table bulids (id int, variables text);
insert into bulids (id, variables )
values (
1,
'{"col1": 10, "col2": 20, "col3": 30,
"variable": [ {"name": "name1", "value": "value1"},
{"name": "name1", "value": "value2"},
{"name": "name3", "value": "val1"},
{"name": "name21", "value": "value21"},
{"name": "name22", "value": "value2111"},
{"name": "name21", "value": "val11"},
{"name": "name1", "value": "val11"},
{"name": "name22", "value": "val11"},
{"name": "name22", "value": "val0"},
{"name": "name5", "value": "val11"}
]}'
);
select
json_array_elements(variables::json->'variable')::json->>'name' as col,
json_array_elements(variables::json->'variable')::json->>'value' as val
from bulids
order by col;
Кому интересно, нашел функцию, которая поможет развернуть строки в колонки https://github.com/hnsl/colpivot
Обсуждают сегодня