Ваша попытка действительно близка, всего пара вещей ..
Вы должны использовать явные объединения (т. Е. JOIN
, LEFT JOIN
и т. Д.) Вместо неявных объединений (запятые в FROM
пункт).Неявные объединения амортизируются более 25 лет.
Кроме того, в этом случае вам потребуется LEFT JOIN
, иначе не будут отображаться отделы, в которых нет инструкторов.LEFT JOIN
сохранит отделы без инструкторов и даст вам счет 0 (как первый запрос), где JOIN
не будет отображать их вообще.
SELECT d.dept_name, COUNT(i.dept_name) as num_instructors
FROM department d
LEFT JOIN instructors i on d.dept_name = i.dept_name
GROUP BY d.dept_name