Занятые сотрудники
В процессе своей работы я столкнулся с задачей составления SQL запроса для получения списка сотрудников и их задач в порядке их занятости. Пришлось использовать таблицы ″employees″ и ″tasks″. Структура таблиц ″employees″ и ″tasks″ представлена следующим образом⁚
Таблица ″employees″⁚
— full_name — полное имя сотрудника,
— job_title — должность сотрудника.
Таблица ″tasks″⁚
— name ⎻ название задачи,
— status, статус задачи (может принимать значения⁚ ″создано″, ″в работе″, ″завершено″),
— parent_task ⎻ ссылка на родительскую задачу в этой же таблице,
— employee_id — ссылка на таблицу ″employees″.
Для решения поставленной задачи я воспользовался следующим SQL запросом⁚
sql
SELECT e.full_name, e.job_title, COUNT(t.task_id) AS total_tasks
FROM employees e
LEFT JOIN tasks t ON e.employee_id t.employee_id
WHERE t.status ‘в работе’
GROUP BY e.employee_id
ORDER BY total_tasks DESC;
Давайте подробнее разберем этот запрос. В первую очередь, я использую оператор SELECT, чтобы выбрать необходимые мне данные. Я выбираю поле full_name из таблицы employees и поле job_title из той же таблицы. Для получения количества задач в работе для каждого сотрудника, я использую функцию COUNT(t.task_id) и задаю ей псевдоним total_tasks.
Затем я использую оператор LEFT JOIN, чтобы объединить таблицы employees и tasks по полю employee_id. Это позволяет мне получить задачи, связанные с каждым сотрудником.
Далее, я использую оператор WHERE для фильтрации только задач, у которых статус равен ″в работе″. Это позволяет мне выбрать только задачи, которые еще не завершены.
Затем я использую оператор GROUP BY, чтобы сгруппировать данные по полю employee_id. Это позволяет мне получить общее количество задач в работе для каждого сотрудника.
И, наконец, я использую оператор ORDER BY, чтобы отсортировать результаты по убыванию значения total_tasks. Это позволяет мне узнать, кто из сотрудников имеет больше всего задач в работе.
Таким образом, SQL запрос ″Занятые сотрудники″ помогает получить список сотрудников и их задач, отсортированный по количеству задач в работе. Это очень полезное средство для управления и оптимизации рабочего процесса, позволяющее более эффективно распределить задачи и контролировать занятость сотрудников.