Sobes.tech
Intern — Middle
54

Запрос SQL для подсчёта числа сотрудников в каждом подразделении

Компании, где спрашивали:

ТранснефтьТранснефть
Условие задачи

Имеются две таблицы: divisions (список подразделений) и employees (список сотрудников). Требуется написать SQL‑запрос, который выведет название каждого подразделения и количество работников, относящихся к нему. Ожидаемый результат: | division_name | employees_count | | Отдел ИТ | 28 |

CREATE TABLE divisions (id PRIMARY KEY, name);

INSERT INTO divisions (id, name)
VALUES 
  (1, 'Отдел ИТ'),
  (2, 'Отдел ИБ'),
  (3, 'Отдел кадров');

CREATE TABLE employees (
  id PRIMARY KEY,
  division_id,
  name,
  surname,
  mail,
  CONSTRAINT division_fk
    FOREIGN KEY (division_id)
    REFERENCES divisions(id)
);

INSERT INTO employees (id, division_id, name, surname, mail)
VALUES 
  (1, 1, 'Имя',  'Фамилия',  'e-mail@yandex.ru'),
  (2, 1, 'Имя1', 'Фамилия1', 'e-mail1@yandex.ru'),
  (3, 1, 'Имя2', 'Фамилия2', 'e-mail2@yandex.ru'),
  (4, 1, 'Имя3', 'Фамилия3', 'e-mail3@yandex.ru'),
  (5, 1, 'Имя4', 'Фамилия4', 'e-mail4@yandex.ru'),
  (6, 1, 'Имя5', 'Фамилия5', 'e-mail5@yandex.ru'),
  (7, 1, 'Имя6', 'Фамилия6', 'e-mail6@yandex.ru'),
  (8, 1, 'Имя7', 'Фамилия7', 'e-mail7@yandex.ru'),
  (9, 3, 'Имя8', 'Фамилия8', 'e-mail8@yandex.ru');