Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Запрос к полю jsonb / 4 сообщений из 4, страница 1 из 1
13.12.2018, 17:26
    #39747549
LonelYNighTWolF
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос к полю jsonb
Добрый день. Прошу помочь с написанием запроса.

Вводные:
Есть таблица с полем data в формате jsonb

Содержит:
{
"items": [
{"name": "A", "id": 1},
{"name": "B", "id": 2}

},
{
{"name": "A", "id": 1},
{"name": "B", "id": 2}
},
{
{"name": "С", "id": 8},
{"name": "G", "id": 5}
}...

Задача:
Посчитать количество "id" для каждой строки - в данном примере - 3.
Самих строк содержащих данные естественно больше.
...
Рейтинг: 0 / 0
14.12.2018, 09:27
    #39747737
Alex URS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос к полю jsonb
LonelYNighTWolF,

во первых у тебя не правильный json
как минимум так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
{
"items": [
[{"name": "A", "id": 1},
{"name": "B", "id": 2}]
,
[{...
{ 



по твоему решению идеально подходит это:

Код: plsql
1.
cross join lateral jsonb_populate_recordset


как развернуть массив смотри тут RTFM
...
Рейтинг: 0 / 0
14.12.2018, 19:02
    #39748131
LonelYNighTWolF
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос к полю jsonb
Благодарю, попробую разобраться в мануале, что вы предложили.

json указал корректно.
БД с которой столкнулся именно такого формата.


{
"items": [
{
},
{
}.,

И к сожалению пока разобраться не получилось, как получать доступ к тем или иным данным из массива.
К примеру, как вывести все name или все id.
С форматом json работаю впервые.
...
Рейтинг: 0 / 0
17.12.2018, 09:53
    #39748795
Alex URS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос к полю jsonb
LonelYNighTWolFjson указал корректно.
.

первый раз вижу такой массив в json
Код: plsql
1.
 { { } , { } }


как массив - да, как json массив - нет
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Запрос к полю jsonb / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]