#236 Количество сотрудников по подразделениям компании

Компании:
Сбербанк
Темы:
SQLJoinsАгрегацияПрактика

Вывести имя компании, имя подразделения, количество сотрудников в подразделении:

CREATE TABLE IF NOT EXISTS company (
   id uuid PRIMARY KEY,
   name_ varchar NOT NULL
);

CREATE TABLE IF NOT EXISTS department (
    id uuid PRIMARY KEY,
    name_ varchar NOT NULL,
    company_id uuid NOT NULL,
    CONSTRAINT department_fk FOREIGN KEY (company_id) REFERENCES company(id)
);

CREATE TABLE IF NOT EXISTS employee (
    id uuid PRIMARY KEY,
    name_ varchar NOT NULL,
    department_id uuid NOT NULL,
    CONSTRAINT employee_fk FOREIGN KEY (department_id) REFERENCES department(id)
);

INSERT INTO company (id, name_) VALUES (1, 'Company 1') ON CONFLICT DO NOTHING;
INSERT INTO company (id, name_) VALUES (2, 'Company 2') ON CONFLICT DO NOTHING;
INSERT INTO company (id, name_) VALUES (3, 'Company 3') ON CONFLICT DO NOTHING;

INSERT INTO department (id, name_, company_id) VALUES (1, 'Department 1', 1) ON CONFLICT DO NOTHING;
INSERT INTO department (id, name_, company_id) VALUES (2, 'Department 2', 1) ON CONFLICT DO NOTHING;
INSERT INTO department (id, name_, company_id) VALUES (3, 'Department 3', 2) ON CONFLICT DO NOTHING;

INSERT INTO employee (id, name_, department_id) VALUES (1, 'Employee 1', 1) ON CONFLICT DO NOTHING;
INSERT INTO employee (id, name_, department_id) VALUES (2, 'Employee 2', 1) ON CONFLICT DO NOTHING;
INSERT INTO employee (id, name_, department_id) VALUES (3, 'Employee 3', 3) ON CONFLICT DO NOTHING;

Разбор вопроса

Ментор
Ответь как на реальном собеседовании. Я задам уточняющие вопросы, а затем сравню твой ответ с эталонным и покажу точность в %.
Войди, чтобы начать диалог Ментор ведёт диалог по текущему вопросу и учитывает предыдущие сообщения.
Войти