База MySQL и Symfony doctrine ORM.
Таблица судебных заседаний с полями: суд, дата и время заседания, представитель.
Надо подсчитать сколько раз представитель ходил в суд.
Например: Представитель может прийти в суд1 утром в 10:00, и у него там несколько заседаний подряд (10:00, 10:30, 11:30), а потом после обеда в 14:00. А другой представитель идет в суд2 в 11:00 и в 15:00. Результат: будет 2 выезда 1го представителя в суд1, и 2 выезда 2го представителя в суд2
РедакторСовершенно не понятно влияет ли конкретный представитель и конкретный суд. Будем считать, что только время. Иначе не понятно, что собственно считать: расписание конкретного представителя в конкретном суде?
select MIN(date) as ddate, sud_id, profile_id, GRP
FROM
(
select date, sud_id, profile_id,
@grp:=@grp+if(date>@prev+interval 2 hour,1,0) as GRP,
@prev:=date
from `sitting`, (select @prev:=NULL, @grp:=1) X
WHERE (date BETWEEN '2021-02-01 00:00:00' AND '2021-02-28 00:00:00')
order by date
) A
GROUP BY GRP, profile_id, sud_id
ORDER BY ddate ASC;
вот таким запросом получилось решить задачу, теперь надо понять, можно ли оптимизировать и как это обернуть в DQL для ORM ?