Подсчёт количества доступных интервьюеров по типам интервью

Начните с INTERVIEW_TYPES, сохраните выбранные типы через LEFT JOIN и посчитайте существующих интервьюеров. Это покажет ноль для типа без доступных специалистов.

Короткий ответ

Что ответить на собеседовании

Начните с INTERVIEW_TYPES, сохраните выбранные типы через LEFT JOIN и посчитайте существующих интервьюеров. Это покажет ноль для типа без доступных специалистов.

Подробный разбор

Ответ с пояснениями

Условие

Имеется база данных, состоящая из трёх таблиц. Необходимо вывести список интервью и число интервьюеров, которые могут их проводить, учитывая только типы интервью "Java", "JavaScript", "Frontend".

create table INTERVIEW_TYPES  
(  
     id   int auto_increment primary key,  
     name varchar(255) not null,  
     constraint INTERVIEW_TYPES_name_uindex unique (name)  
);  

create table INTERVIEWERS  
(  
     id   int auto_increment primary key,  
     name varchar(255) not null,  
     constraint INTERVIEWERS_name_uindex unique (name)  
 );  

create table INTERVIEWERS_INTERVIEW_TYPES  
(  
     interview_id  int not null,  
     interviewer_id  int not null,  
     constraint INTERVIEWERS_INTERVIEW_TYPES_interview_id_interviewer_id_uindex unique (interview_id, interviewer_id)  
);

Ответ

Начните с INTERVIEW_TYPES, сохраните выбранные типы через LEFT JOIN и посчитайте существующих интервьюеров. Это покажет ноль для типа без доступных специалистов.

SELECT t.name, COUNT(i.id) AS interviewers_count
FROM INTERVIEW_TYPES t
LEFT JOIN INTERVIEWERS_INTERVIEW_TYPES link ON link.interview_id = t.id
LEFT JOIN INTERVIEWERS i ON i.id = link.interviewer_id
WHERE t.name IN ('Java', 'JavaScript', 'Frontend')
GROUP BY t.id, t.name;

Уникальная пара в таблице связи предотвращает повторный подсчёт одного интервьюера для типа. COUNT(i.id), а не COUNT(*), исключает пустые строки внешнего соединения и отсутствующих интервьюеров. Тип, которого вообще нет в INTERVIEW_TYPES, такой запрос не создаёт искусственно.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее