как добавить count () в MySQL - PullRequest
0 голосов
/ 24 апреля 2020

хорошо. Вот таблицы: регионы, страны, места, отделы, персонал, история работы, вакансии.

  • регионов имеет свой собственный идентификатор и имя.

  • страны имеют свой собственный идентификатор и имя и идентификатор региона в качестве внешнего ключа.

  • местоположения имеют свой идентификатор, адрес, почтовый индекс, город, штат и идентификатор страны в качестве внешнего ключа.

  • отдел имеет свой идентификатор и имя и Идентификатор менеджера в качестве внешнего ключа и идентификатор местоположения в качестве основного ключа.

  • Персонал имеет свой идентификатор, имя, фамилию, адрес электронной почты, дату найма, зарплату, комиссию и supervisor_id в качестве основного ключа и Department_id в качестве ключа foregin, и job_id в качестве ключа foregin.

  • история заданий имеет идентификатор персонала в качестве внешнего ключа, а начальные данные, дату окончания и идентификатор задания и департамента в качестве внешнего ключа.

  • вакансии имели свой собственный идентификатор, должность, минимальную зарплату и максимальную зарплату.

Вот мои вопросы.

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

SELECT region_name, country_name,  COUNT(*) as StaffCount
FROM regions 
INNER JOIN countries ON regions.region_id = countries.region_id
INNER JOIN locations ON locations.country_id = countries.country_id
INNER JOIN departments ON departments.location_id = locations.location_id
GROUP BY region_name
ORDER BY country_name ASC;

Где этот код неправильный и как я могу изменить этот код?

Другая проблема состоит в том, что я хочу напечатать имя, фамилию, должность руководителя, количество сотрудников, которых они контролируют, только когда они контролируют 7 или более сотрудников. Как добавить счетчик (*) к следующему коду?

SELECT first_name, last_name, job_title, supervisor_id
FROM staff INNER JOIN jobs ON staff.job_id = jobs.job_id;

1 Ответ

0 голосов
/ 24 апреля 2020
SELECT region_name, country_name,  COUNT(*) as StaffCount
FROM regions 
INNER JOIN countries ON regions.region_id = countries.region_id
INNER JOIN locations ON locations.country_id = countries.country_id
INNER JOIN departments ON departments.location_id = locations.location_id
GROUP BY region_name, country_name
ORDER BY country_name ASC;

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

Для второй проблемы, если вы можете поделиться структурой таблицы, которая поможет.

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