Creo que time_read ya está en segundos (así que en minutos sería time_read /60 y en horas sería time_read /3600)
Creo que si quisieras ver un gráfico del tiempo promedio de lectura por usuario por día dentro de un período determinado, la consulta se vería algo así:
-- [params]
-- date :start_date
-- date :end_date
SELECT
visited_at,
ROUND(AVG(time_read/60),2)::float AS total_minutes
FROM user_visits
WHERE visited_at BETWEEN :start_date AND :end_date
GROUP BY visited_at
ORDER BY visited_at
