Компания: проекты и сотрудники (many-to-many — сотрудник работает в нескольких проектах). Сотрудник может быть уволен. Эталонная схема: projects, employees (is_fired), project_employees.
Одним запросом выведи для каждого проекта: id, name, количество всех сотрудников (total) и количество неуволенных (active). Проекты без сотрудников — с нулями.
1CREATE TABLE projects (2 id int PRIMARY KEY,3 name text NOT NULL4);5CREATE TABLE employees (6 id int PRIMARY KEY,7 name text NOT NULL,8 is_fired boolean NOT NULL DEFAULT false9);10CREATE TABLE project_employees (11 project_id int NOT NULL REFERENCES projects (id),12 employee_id int NOT NULL REFERENCES employees (id),13 PRIMARY KEY (project_id, employee_id)14);15INSERT INTO projects VALUES (1, 'billing'), (2, 'search'), (3, 'legacy'), (4, 'new');16INSERT INTO employees VALUES17 (1, 'Иван', false), (2, 'Ольга', false), (3, 'Пётр', true), (4, 'Мария', true), (5, 'Сергей', false);18-- legacy — только уволенные, new — никого19INSERT INTO project_employees VALUES (1, 1), (1, 2), (1, 3), (2, 2), (2, 5), (3, 3), (3, 4);