Сakephp оформить запрос в finder

133
07 августа 2019, 21:00

Ребята, помогите записать и выполнить данный запрос в finder cakephp 3.5.10

select user_id, GRP, MIN(time) as Start, MAX(time) as End
  from (select user_id, time,
       @grp:=@grp+if(time>@prev+interval 30 minute,1,0) as GRP,
       @prev:=time
  from user_log, (select @prev:=NULL, @grp:=1) X
 order by time) A
 group by GRP

в итоге нужно группировать результат по user_id.

Ниже структура таблицы, для удобства

Спасибо

Answer 1

Построил запрос в контроллере, может кому пригодиться!

$connection = ConnectionManager::get('default');
$details = $connection
    ->newQuery()
    ->select(['Users.name', 'user_id', 'start' => 'work_period, MIN(datetime)', 'end' => 'MAX(datetime)', 'TIMEDIFF(MAX(datetime)', 'result' => 'MIN(datetime))'])
    ->from('(select user_id, datetime, @workperiod:=@workperiod+if(datetime>@prev+interval 15 minute,1,0) as work_period,@prev:=datetime from user_log, (select @prev:=NULL, @workperiod:=1) X order by datetime) A INNER JOIN users as Users ON Users.id = user_id')
    ->where(['datetime LIKE' => $date."%"])
    ->group(['work_period', 'user_id'])
    ->execute()
    ->fetchAll('assoc');
READ ALSO
Функция system в C++

Функция system в C++

Смотрю описание функции system и заметил два странных места:

126
Сложение (прикрепление) числа к букве C++

Сложение (прикрепление) числа к букве C++

Как можно число n = 10 Сложить с буквами aa (это пример)? Чтобы в конце получился вывод aa10

114
Подскажите как избавится от повторений

Подскажите как избавится от повторений

Как избавиться от повторений в моем коде?Я так понимаю,необходимо сохранять результаты куда-то(в массив?),а потом сравнивать с новым рандомом,и,если...

122
Преобразовать DICOM Image в JPG

Преобразовать DICOM Image в JPG

С помощью чего можно преобразовать DICOM Image to JPG? Есть библиотеки помимо DCMTK?

129