powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Написать непростой запрос
2 сообщений из 2, страница 1 из 1
Написать непростой запрос
    #40109917
polin11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использую СУБД Postgresql, есть таблица

https://www.db-fiddle.com/f/3ERqNCRRXJh5yEJvDtJMQf/0

Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE forms (
	id serial PRIMARY KEY,
	account int not null,
	author text,
    doc int NOT NULL,
    users text[]
);


нужно получить результат следующего вида

author : {account: [users]}


Код: sql
1.
2.
3.
4.
5.
6.
7.
insert into  forms(account, author, doc, users) values 
(1, 'Иванов', 3, array['Петя', 'Вася']),
(1, 'Иванов', 3, array['Иван']),
(2, 'Иванов', 3, array['Иван']),
(2, 'Сергеев', 3, array['Павел']),
(2, 'Сергеев', 3, array['Роман']),
(1, 'Сергеев', 3, array['Коля' , 'Дима'])




для предыдущего набора должны получить такой результат

Код: python
1.
2.
'Иванов': {1: ['Петя', 'Вася', 'Иван'], 2: ['Иван']},
'Сергеев': {1: ['Коля' , 'Дима'], 2: ['Павел', 'Роман']}




Нужно написать запрос, который вернет результат с такой структурой,
чтобы потом по минимуму в коде формировать такой словарь.

Нужна конструктивная идея как написать такой запрос
...
Рейтинг: 0 / 0
Написать непростой запрос
    #40109926
grgdvo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
polin11,

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


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