У меня есть 3 таблицы patients(где хранятся данные пациентов), engagements(сервисы но не только пациентам) и patient_services(сервисы тольло для пациентов).
Задача сгруппировать в выборке количество сервисов в локации и сколько уникальных пациентов было обслужено в локации.
Есть вот такой запрос
SELECT ps_user_loc AS loc, COUNT(ps_id) AS number
FROM patient_services GROUP BY loc
UNION ALL
SELECT eng_user_loc AS loc, COUNT(eng_id) AS number FROM engagements WHERE LENGTH( eng_ur )>0 GROUP BY loc
Возвращает все в одной таблице но loc дублируется
CABOOLTURE 354
KILCOY 15
Pine Rivers 352
..
Pine Rivers 115
Как сделать объединение?
Есть вот такой запрос, который возвращает все номера пациентов
SELECT ps_ur AS UR FROM patient_services GROUP BY UR
UNION ALL
SELECT eng_ur AS UR FROM engagements WHERE LENGTH( eng_ur )>0 GROUP BY UR
В таблице patient_services есть ps_ur и в engagements есть eng_ur это и есть номера пациентов.
Как сделать запрос который возвращает ответ вида с груп по loc?
loc(без дублей) - все сервисы(count) - уникальные пациенты(count)