Хотя я не совсем новичок в SQL или MySQL, я заметил, что есть еще что-то, чему можно научиться. Я не могу разобраться с этим после долгих попыток, чтения и поиска. Если вы можете дать какие-либо указатели, я был бы благодарен.
Я упростил фактические данные и таблицы следующим образом.
Имеются две таблицы: персонал и работа. Они содержат данные о сотрудниках в различных проектах.
Персонал:
ID Name Unit
1 Smith Chicago
2 Clarke London
3 Hess Chicago
Работа:
StaffID ProjectID
1 10
2 10
3 10
1 20
2 30
3 40
1 50
3 50
Цель:
Чтобы сгруппировать все эти проекты, где есть сотрудники из Чикаго, с учетом всех сотрудников в этом проекте.
Ожидаемый результат:
Project Staff count
10 3
20 1
40 1
50 2
Таким образом, проект 30 отсутствует в списке, поскольку его участники не из Чикаго.
Мой запрос ниже, очевидно, неверный. Он учитывает только тех участников проекта, которые из Чикаго, а не весь персонал проекта.
SELECT
work.projectID as Project, COUNT(*) as "Staff count"
FROM
staff
JOIN
work ON staff.ID=work.staffID
WHERE
unit="Chicago"
GROUP BY
work.projectID;