Составьте SQL-запрос для поиска пациентов, имеющих по крайней мере два приема, медсестёр подготовивших приём, и врачей, оказавший первичную помощь. Название базы данных для которой выполняется запрос: hospital
sql
SELECT p.patient_id, p.patient_name
FROM patients p
JOIN appointments a ON p.patient_id = a.patient_id
JOIN nurses n ON a.nurse_id = n.nurse_id
JOIN doctors d ON a.doctor_id = d.doctor_id
GROUP BY p.patient_id, p.patient_name
HAVING COUNT(DISTINCT n.nurse_id) >= 2 AND COUNT(DISTINCT d.doctor_id) >= 1;
Пояснения:
1. В этом запросе используются несколько таблиц: "patients" для информации о пациентах, "appointments" для информации о приемах, "nurses" для информации о медсестрах и "doctors" для информации о врачах.
2. Присоединяем таблицы с помощью оператора JOIN. В данном случае, присоединяем таблицы "patients" и "appointments" по полю "patient_id" (идентификатор пациента), таблицу "appointments" и "nurses" по полю "nurse_id" (идентификатор медсестры) и таблицу "appointments" и "doctors" по полю "doctor_id" (идентификатор врача).
3. Группируем результаты по идентификатору пациента и их именам, чтобы использовать агрегатные функции.
4. Используем условие HAVING, чтобы найти пациентов, у которых по крайней мере два уникальных идентификатора медсестры и по крайней мере один уникальный идентификатор врача.
5. Выводим идентификатор и имя пациента из таблицы "patients".
Таким образом, данный SQL-запрос позволяет найти пациентов, которые имеют по крайней мере два приема, медсестров, подготовивших приемы, и врачей, оказавших первичную помощь.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет