Запрос в Discourse для общего времени чтения

Я хочу использовать Discourse Data Explorer, чтобы увидеть общее время, которое пользователи провели за чтением. Затем мы могли бы модифицировать этот запрос, чтобы узнать среднее время чтения на одного пользователя, что также было бы полезно.

Возможно ли это?

Очень быстрый и простой запрос выглядит так:

SELECT user_id, time_read FROM user_stats ORDER BY time_read DESC

Это возвращает время чтения для всех пользователей, отсортированное по убыванию времени чтения.

Также в этой теме есть несколько запросов, которые могут стать хорошей отправной точкой: Data explorer query to list the longest "estimated read time" topics?.

Можно ли получать данные по дням, а не по пользователям? Например, X минут прочитано в этот день.

Я разобрался: этот запрос показывает общее время, проведенное за день:

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

Пример на моём форуме:

Я думаю, что 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