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

Discourse Data Explorer を使用して、ユーザーが読んでいる合計時間(ユーザーごとの合計時間)を確認したいと考えています。その後、そのクエリを変更して、平均ユーザーがどれくらいの時間読んでいるかを確認することも有益でしょう。

これは可能でしょうか?

非常に簡単で素早いクエリは…

SELECT user_id, time_read FROM user_stats ORDER BY time_read DESC

これにより、すべてのユーザーの読書時間が、読書時間の降順で表示されます。

「いいね!」 1

また、このトピックには、以下を良い出発点とすることができるクエリがいくつかあります: Data explorer query to list the longest "estimated read time" topics?

「いいね!」 3

ユーザーごとではなく、日ごとに取得することは可能ですか?例えば、その日にX分読んだ、といった具合です。

わかりました。このクエリは、日ごとの合計滞在時間を取得します。

SELECT visited_at, SUM(time_read * 60) AS total_user_secs
FROM user_visits
GROUP BY visited_at
ORDER BY visited_at

私のフォーラムでの例:

「いいね!」 1

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

「いいね!」 4