Requête Discourse pour le temps de lecture total

Je souhaite utiliser Discourse Data Explorer pour voir le total des minutes d’utilisation de mes utilisateurs, indiquant combien de temps ils lisent. Nous pourrions ensuite modifier cette requête pour voir combien de temps l’utilisateur moyen lit, ce qui serait également bénéfique.

Est-ce possible ?

Une requête très rapide et facile est…

SELECT user_id, time_read FROM user_stats ORDER BY time_read DESC

Cela vous donne le temps de lecture de tous les utilisateurs par ordre décroissant du temps de lecture.

1 « J'aime »

De plus, il existe quelques requêtes dans ce sujet qui pourraient constituer un bon point de départ : Data explorer query to list the longest "estimated read time" topics?.

3 « J'aime »

Est-il possible de l’obtenir par jour plutôt que par utilisateur ? comme X minutes lues ce jour-là

J’ai trouvé, cette requête permet d’obtenir le temps total passé par jour :

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

Exemple sur mon forum :

1 « J'aime »

Je pense que time_read est déjà en secondes (donc en minutes ce serait time_read /60 et en heures ce serait time_read /3600)

Je pense que si vous vouliez examiner un graphique du temps de lecture moyen par utilisateur et par jour dans un délai donné, la requête ressemblerait à ceci :

-- [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 « J'aime »