Как я могу выбрать данные для массива в postgresql DBMS? - PullRequest
0 голосов
/ 24 октября 2018

Результат запроса:

|  student_id  |  name  |  age  |  group  | 
---------------+--------+-------+----------  
| 1413001      | Ann    | 14    | Tennis  |
| 1413001      | Ann    | 14    | Choir   |

Если я выберу записи, подобные этой, я хочу сделать их в объект JSON, например

{student_id: "1413001", name: "Ann", Age: "14", group:["Tennis", "Choir"]}

Как я могу сделать их такими же в Java илиSQL?

1 Ответ

0 голосов
/ 24 октября 2018

demo: db <> fiddle

SELECT 
    row_to_json(s) 
FROM (
    SELECT 
        student_id, 
        name, 
        age, 
        json_agg("group") as "group"
    FROM students 
    GROUP BY student_id, name, age
) s
  1. Сгруппируйте «группы» в массив json с json_agg
  2. Все строки подзапросаможно преобразовать в объекты json с помощью row_to_json

https://www.postgresql.org/docs/current/static/functions-json.html


Обратите внимание, что «группа» является зарезервированным словом в Postgres.Я рекомендую переименовать этот столбец.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...