Как написать этот запрос MySQL? [Дубликат]

0

Существует таблица "лечение", которая содержит столбцы "staff_no", "patient_id", "start_date", "reason". Теперь я должен выбрать запрос, чтобы получить количество отдельных пациентов, проходящих каждый тип лечения (т.е. причину лечения) в базе данных, упорядоченный по алфавиту по причине лечения, но только для того, чтобы перечислить процедуры, которые имеют как минимум 2 пациенты проходят их. Это то, что я wrote-

SELECT COUNT (DISTINCT patient_id) CountNumber, reason FROM 'treatment' GROUP 
BY reason ORDER BY reason;

но я получаю # 1064error.

Теги:

1 ответ

0

Возможно, что-то вроде этого, exists подзапрос, выберет все причины, которые содержат более двух строк в группе, из которых select distinct будет составлять список уникальных reasons а patient_id и внешний выбор будут отображать причины, отсортированные по количеству пациентов по этой причине

SELECT 'reason', COUNT(*) FROM 
 (
      SELECT DISTINCT 'patient_id', 'reason' FROM 'treatment' 
      WHERE EXISTS  (
            SELECT 'reason' FROM 'treatment' t2 
                WHERE 'treatment'.'reason' = 't2'.'reason' 
               GROUP BY 'reason'
               HAVING COUNT(*)>=2
      )
 ) t 
 GROUP BY reason ORDER BY 'reason' 

HAVING - это своеобразное условие, но для совокупных функций, таких как COUNT, AVG и т.д.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню