@kedavr13

Поиск по среднему времени в связанной таблице?

Есть таблица с пользователями, также есть связанная таблица которая в двух колонках хранит даты в формате timestamp.
Связь по hasMany.
Как мне получить все записи из первой таблицы у которых среднее значение между датами в минутах больше 10 допустим.
Пробовал использовать TIMESTAMPDIFF, но не знаю будет ли он работать при связи 1:n и как его впихнуть в построитель запросов.
есть таблица user у нее есть связь с таблице work_time по hasMany
В work_time есть колонки time_in и time_out
Необходимо получить всех юзеров у которых среднее время в work_time равно 20 по схеме все time_out - time_in/на число таких записей
  • Вопрос задан
  • 152 просмотра
Решения вопроса 1
@kedavr13 Автор вопроса
На основе ответа Konstantin получилось собрать вот такой вот запросик
$query
                ->innerJoin('histories' , 'users.id = histories.user_id')
                ->select('users.*, histories.user_id, avg(timestampdiff(minute,`histories`.`time_in`,`histories`.`time_out`)) as avgtime')
                ->groupBy('user_id')
                ->having('avgtime > ' . $this->wash_middle_time_more);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы