select ID, date(call_start) as date_call, hour(call_start) as hour_call,
concat(floor(avg(1.0*duration)/60),':',round(avg(1.0*duration)%60)) as avg_duration_mm_ss_string
from tbl
group by ID, date(call_start), hour(call_start)
order by 1,2,3
It's actually 6:44 since .74 of a minute is 44.4 seconds.