Discourse-Abfrage für die gesamte Lesezeit

Ich möchte den Discourse Data Explorer verwenden, um die gesamten Benutzer-Minuten anzuzeigen, wie lange meine Benutzer lesen. Dann könnten wir diese Abfrage modifizieren, um zu sehen, wie lange der durchschnittliche Benutzer liest, was ebenfalls von Vorteil wäre.

Ist das möglich?

Eine sehr schnelle und einfache Abfrage ist…

SELECT user_id, time_read FROM user_stats ORDER BY time_read DESC

Das gibt Ihnen die Lesezeit für alle Benutzer in absteigender Reihenfolge der Lesezeit.

1 „Gefällt mir“

Außerdem gibt es in diesem Thema ein paar Abfragen, die ein guter Ausgangspunkt sein könnten: Data explorer query to list the longest "estimated read time" topics?.

3 „Gefällt mir“

Ist es möglich, dies pro Tag statt pro Benutzer zu erhalten? z. B. X Minuten an diesem Tag gelesen

Ich habe es herausgefunden, diese Abfrage ermittelt die insgesamt pro Tag aufgewendete Zeit:

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

Beispiel in meinem Forum:

1 „Gefällt mir“

Ich denke, time_read ist bereits in Sekunden (also in Minuten wäre time_read /60 und in Stunden wäre time_read /3600)

Ich denke, wenn Sie ein Diagramm der durchschnittlichen Lesezeit pro Benutzer und Tag innerhalb eines bestimmten Zeitraums betrachten möchten, würde die Abfrage etwa so aussehen:

-- [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 „Gefällt mir“