SQL Найти человека, который отработал больше всех смен за всё время/в этом месяце
Дано: 2 таблицы с данными сотредников и расписанием их смен
Как видно, один сотрудник может работать как в первую смену, так и во вторую.
Требуется: найти сотрудника, который отработал больше всего смен за всё время, и за каждый месяц в отдельности.
Пробовал решить задачу через UNION, но почему-то в ответе какая-то дичь... создается впечатление, что COUNT считает не количество выборок, а суммирует ID.
SELECT
(SELECT CONCAT(person.NAME, ' ', person.PATRONYMIC)
FROM person
WHERE person.ID=schedule_.PERSON_1),
COUNT(*)
FROM person, schedule_, holiday
GROUP BY
(SELECT CONCAT(person.NAME, ' ', person.PATRONYMIC)
FROM person WHERE person.ID=schedule_.PERSON_1)
UNION
SELECT
(SELECT CONCAT(person.NAME, ' ', person.PATRONYMIC)
FROM person WHERE person.ID=schedule_.PERSON_2),
COUNT(*)
FROM person, schedule_, holiday
GROUP BY
(SELECT CONCAT(person.NAME, ' ', person.PATRONYMIC)
FROM person WHERE person.ID=schedule_.PERSON_2)
По возможности не давайте прямого ответа, намекните, как по-другому можно решить задачу.