Я думаю, что time_read уже указан в секундах (так что в минутах это будет time_read / 60, а в часах — time_read / 3600).
Я думаю, что если вы хотите посмотреть на график среднего времени чтения на пользователя в день в течение определённого периода, запрос будет выглядеть примерно так:
-- [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
