Запрос на выборку mysql
Вывести посещения месяца с полной информацией врача с наименьшим количеством посещений за определенный период.
В общем, я написал запрос, который выводит врачей и посещения за определенный период
select visit_id,
pets.name as pet_name,
concat(first_name, ' ', last_name) as vet_name,
visit_date,
visits.description,
services.name,
price
from visits
join vets on visits.vet_id = vets.id
join pets on visits.pet_id = pets.id
join visit_details on visits.id = visit_details.visit_id
join services on visit_details.service_id = services.id
where visit_date between '2019-02-10' and '2019-03-02'
order by visit_date, price
Вот что получил
как из этих записей оставить только те фамилии (vet_name) которых наименьшее количество?
Вот вся схема базы, но все таблицы я уже объеденил в запрос

Ответы (1 шт):
Автор решения: HackerU
→ Ссылка
Не запускал, так как у меня нет данных, но выглядеть это должно приблизительно так:
create view view1 as
select visit_id,
pets.name as pet_name,
concat(first_name, ' ', last_name) as vet_name,
visit_date,
visits.description,
services.name,
price
from visits
join vets on visits.vet_id = vets.id
join pets on visits.pet_id = pets.id
join visit_details on visits.id = visit_details.visit_id
join services on visit_details.service_id = services.id
where visit_date between '2019-02-10' and '2019-03-02'
order by visit_date, price;
create table table1 as
select
vet_name,
count(vet_name) as cnt
from view1
group by vet_name;
create table table2 as
select
vet_name
from table1
where cnt = (select min(cnt) from table1);
select vet_name
from table1
where vet_name in (select vet_name from table2);
