Я следовал этому , чтобы попытаться получить AHT из моей базы данных.
Итак, структура базы данных:
_____________________________________________________________________________________
| |
| ticketid tecnico_id time_at visit_hour_in visit_hour_out |
|_____________________________________________________________________________________|
| 1 3 08:15 16:03 17:00 |
| 2 7 10:45 11:03 13:00 |
| 3 9 08:05 12:03 14:00 |
| 4 6 08:43 12:03 13:30 |
| 5 10 13:30 14:03 15:45 |
|_____________________________________________________________________________________|
Поэтому я хотел бы получить среднее время обработки на tecnico_id
.
Я пытался с:
SELECT tecnico_id,
AVG((time_at) - (visit_hour_in)) AS responseTime,
AVG((visit_hour_in) - (visit_hour_out)) AS activityTime,
AVG((time_at) - (visit_hour_out)) AS handlingTime
FROM `ticket` GROUP BY tecnico_id ORDER BY `ticket`.`tecnico_id` ASC
Это выводит это:
___________________________________________________________________________
| |
| tecnico_id responseTime activityTime handlingTime |
|___________________________________________________________________________|
| 3 0 0 0 |
| 5 13.6 0 13.6 |
| 6 5.791946308724833 -0.37583892617449666 5.416107382550336 |
| 7 5.791946308724833 -0.37583892617449666 5.416107382550336 |
| 8 5.791946308724833 -0.37583892617449666 5.416107382550336 |
| 9 5.791946308724833 -0.37583892617449666 5.416107382550336 |
| 10 5.791946308724833 -0.37583892617449666 5.416107382550336 |
| 11 5.791946308724833 -0.37583892617449666 5.416107382550336 |
| 18 5.791946308724833 -0.37583892617449666 5.416107382550336 |
| 19 5.791946308724833 -0.37583892617449666 5.416107382550336 |
| 20 5.791946308724833 -0.37583892617449666 5.416107382550336 |
| 21 5.791946308724833 -0.37583892617449666 5.416107382550336 |
| 22 5.791946308724833 -0.37583892617449666 5.416107382550336 |
| 23 5.791946308724833 -0.37583892617449666 5.416107382550336 |
| 24 5.791946308724833 -0.37583892617449666 5.416107382550336 |
|___________________________________________________________________________|
5.791946308724833
, -0.37583892617449666
и 5.416107382550336
не повторяются, я просто не хотел форматировать таблицу.
Чтобы преобразовать ее в часы, минуты и секунды, я использую gmdate('H:i:s', '5.791946308724833')
, (в качестве примера), однако... Результаты не точны, так как они должны быть .То, что мне нужно сделать , это получить разницу между этими полями, а затем получить среднее значение, так что я могу сказать, в качестве примера:
tecnico_id # 3 responseTime = 02 часаи 3 минуты, его время активности составляет 0 часов и 48 минут, а его AHT за билет составляет 3 часа и 0 минут.
Как мне этого добиться?