Intereting Posts
Mysqli Подготовить заявления + Binding Order BY ZendFramework – Как создать optgroup и там вариант с помощью помощников вида? как отправить push-уведомление с помощью phonegap и parse Многопоточный запрос PHP PDO, последовательно отбрасывающий последний набор строк Подпишитесь на подписчиков YouTube с помощью нового API YouTube v3 php: Вставить специальные символы в базу данных myadmin Проверьте, имеет ли переменная число php Как изолированность уровня транзакции влияет на производительность в режиме autocommit в MySQL? как сгенерировать PDF с использованием вида блейдов с tcpdf laravel 5? как получить следующий / предыдущий пост hrefs и заголовки в wordpress Как обновлять настраиваемые параметры программно в пурпуре? PHP не читает весь CSV-файл переменная php while loop для каждого третьего div Прочитайте одно значение из базы данных и сохраните его в переменной zf2 tablegateway выберите столбцы по имени столбца

Как подсчитать, сколько врачей забронировано каждым пациентом?

Мне нужно, чтобы результаты выглядели так:

PatientID Doctors Patient1 3 Patient2 2 Patient3 1 

Забронированная таблица выглядит так:

 GPS Table PatientID DoctorID DATE Patient1 Doctor1 2016-02-16 Patient1 Doctor1 2016-04-08 Patient1 Doctor2 2016-06-09 Patient2 Doctor3 2017-01-02 Patient2 Doctor6 2016-12-01 Patient3 Doctor1 2016-07-12 

Есть больше заказов, но я просто приведу эту таблицу в качестве примера. Также мне нужно убедиться, что он не будет считать того же врача, если человек забронирован 2 раза для врача.

Код, который у меня есть сейчас:

 select Bookings.PatientID, count(Bookings.DoctorID) as Doctors from Bookings where Bookings.DoctorID; 

Спасибо за любую помощь!

Используйте группу по временной таблице с отдельными пациентами и врачами

  select Patient, count(*) from ( select distinct Bookings.PatientID as Patient ,DoctorID as Doctors from Bookings ) as t Group by Patient; 

Вы ищете count(distinct) :

 select b.PatientID, count(distinct b.DoctorID) as NumDoctors from Bookings b group by b.PatientID; 

попробуй это :

 SELECT PatientID, count(DoctorID) FROM `GPS ` group by PatientID 

Я сделал это, и это сработало:

 select PatientID as Patient, count(distinct(DoctorID)) as Doctors from Bookings, Patients group by PatientID; 

Спасибо вам за помощь!