Напишите запрос, чтобы отобразить названия отделов и количество сотрудников в каждом отделе, если персонал не существует, отобразить счет как 0 - PullRequest
0 голосов
/ 17 апреля 2019

Напишите запрос для отображения названий отделов и количества сотрудников в каждом отделе, если персонал не существует, отобразите счетчик как 0. Укажите псевдоним для счетчика персонала как staff_count.Сортировка результатов по названию отдела.

Это то, что я пробовал.

select department_name,count(*) as staff_count
from left join staff on department.department_id=staff.staff_id
group by department_name order by department_name;

Я думаю, что-то не хватает в моем коде.

Ответы [ 3 ]

0 голосов
/ 18 июня 2019
SELECT
    d.department_name,
    COUNT(s.staff_id) AS staff_count
FROM department d
LEFT JOIN staff s
    ON d.department_id = s.department_id
GROUP BY
    d.department_name,
    d.department_id
ORDER BY
    d.department_name;
0 голосов
/ 10 июля 2019

, если вы хотите сделать это другим способом.Тогда вы можете попробовать следующий код:

1 select d.department_name,count(s.staff_id) as staff_count
2 from department d,staff s
3 where d.department_id=s.department_id(+)
4 group by department_name
5 order by department_name;
0 голосов
/ 17 апреля 2019

Я бы написал ваш запрос как:

SELECT
    d.department_name,
    d.department_id,
    COUNT(s.staff_id) AS cnt
FROM department d
LEFT JOIN staff s
    ON d.department_id = s.department_id
GROUP BY
    d.department_name,
    d.department_id
ORDER BY
    d.department_name;

Вы хотите присоединиться из таблицы department к таблице staff, чтобы умножить каждую запись отдела на количество сотрудников, которое в ней содержится. Мы учитываем ценности персонала, что касается случая, когда в данном отделе нет сотрудников.

Обратите внимание, что я предполагаю, что department_id - это имя столбца соединения в обеих таблицах. Если нет, то измените вышеуказанный запрос соответствующим образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...