Discourseの総読書時間に関するクエリ

time_read はすでに秒単位であるため、分単位では time_read /60、時間単位では time_read /3600 になると思います。

指定された期間における、ユーザーごとの1日あたりの平均読書時間のグラフを表示したい場合、クエリは次のようになります。

-- [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