/*
Категроия 1:
подкатегория 2
подкатегрия 3
Категория 2
подкатегория 1
подкатегория 4
*/
CREATE TABLE category (
id int,
title varchar(255),
PRIMARY KEY(id)
);
INSERT INTO category VALUES (1, 'Категроия 1'), (2, 'Категория 2');
CREATE TABLE subcategory (
id int,
title varchar(255),
category_id INTEGER REFERENCES category (id),
PRIMARY KEY(id)
);
INSERT INTO subcategory VALUES
(2, 'подкатегория 2', 1), (3, 'подкатегория 3', 1),
(1, 'подкатегория 1', 2), (4, 'подкатегория 4', 2);
SELECT
category.id, category.title, ARRAY_AGG(subcategory.title)
FROM category
JOIN subcategory ON subcategory.category_id = category.id
GROUP BY category.id, category.title;