Я пытаюсь написать запрос к моей таблице еда.список:
categories | items
----------------------------
dairy | ["milk", "cheese"]
fruit | ["apples", "pears", "grapes"]
vegetables | ["carrots"]
и вернуть столбец selected_foods с одной строкой. Я хочу, чтобы значение строки было объектом со списком категорий (ключей) с массивом элементов (значений).
selected_foods
------------------------------------
{
dairy: ["milk", "cheese"],
fruit: ["apples", "pears", "grapes"],
vegetables: ["carrots"]
}
До сих пор я пробовал:
SELECT json_agg(json_build_object(categories, items::json))::json
AS selected_foods
FROM food.list
Но это возвращает массив объектов, т.е.:
selected_foods
------------------------------------
[
{ dairy: ["milk", "cheese"] },
{ fruit: ["apples", "pears", "grapes"] },
{ vegetables: ["carrots"] }
]
Я думаю, что применяю функцию json_build_object слишком рано... или, может быть, мне нужно снова развернуть их после?
Любая помощь будет потрясающей, спасибо :)