Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment calculer les utilisateurs actifs hebdomadaires (WAU) dans MySQL

Les utilisateurs actifs hebdomadaires (WAU) sont un indicateur de performance clé (KPI) utile à suivre pour chaque entreprise en ligne. Cela vous donne une idée du nombre de personnes qui utilisent votre produit/service au moins une fois par semaine. Voici comment calculer les utilisateurs actifs hebdomadaires (WAU) dans MySQL.

Comment calculer les utilisateurs actifs hebdomadaires (WAU) dans MySQL

Disons que vous avez les utilisateurs de table suivants (user_id, last_login). dernière_connexion est l'horodatage de la dernière connexion d'un utilisateur. Certains systèmes stockent également cet horodatage sous la forme modified_date, updated_at, etc.

mysql> create table users(user_id int, last_login datetime);

mysql> insert into users(user_id, last_login) values(1,'2020-03-01 10:00:00'),
     (2,'2020-03-02 09:00:00'),(3,'2020-03-03 14:00:00'),(4,'2020-03-04 11:00:00'),
     (5,'2020-03-05 12:00:00'),(6,'2020-03-06 20:00:00'),(7,'2020-03-07 21:00:00'),
     (8,'2020-03-08 12:00:00'),(9,'2020-03-09 20:00:00'),(10,'2020-03-10 21:00:00'),
     (11,'2020-03-11 12:00:00'),(12,'2020-03-12 20:00:00'),(13,'2020-03-13 21:00:00'),
     (14,'2020-03-13 12:00:00'),(15,'2020-03-15 20:00:00'),(16,'2020-03-16 21:00:00');

mysql> select * from users;
+---------+---------------------+
| user_id | last_login          |
+---------+---------------------+
|       1 | 2020-03-01 10:00:00 |
|       2 | 2020-03-02 09:00:00 |
|       3 | 2020-03-03 14:00:00 |
|       4 | 2020-03-04 11:00:00 |
|       5 | 2020-03-05 12:00:00 |
|       6 | 2020-03-06 20:00:00 |
|       7 | 2020-03-07 21:00:00 |
|       8 | 2020-03-08 12:00:00 |
|       9 | 2020-03-09 20:00:00 |
|      10 | 2020-03-10 21:00:00 |
|      11 | 2020-03-11 12:00:00 |
|      12 | 2020-03-12 20:00:00 |
|      13 | 2020-03-13 21:00:00 |
|      14 | 2020-03-13 12:00:00 |
|      15 | 2020-03-15 20:00:00 |
|      16 | 2020-03-16 21:00:00 |
+---------+---------------------+

Voici la requête SQL pour calculer les utilisateurs actifs hebdomadaires (WAU) dans MySQL, au cours de la dernière semaine.

mysql> SELECT COUNT(DISTINCT user_id)
         FROM users
         WHERE last_login > NOW() - INTERVAL 1 WEEK;
+-------------------------+
| COUNT(DISTINCT user_id) |
+-------------------------+
|                      16 |
+-------------------------+

Lecture bonus :Comment calculer les utilisateurs actifs mensuels (MAU) dans MySQL

Si vous souhaitez ajouter des filtres (par exemple, status=4) à votre requête, vous pouvez l'ajouter à la clause WHERE, comme indiqué ci-dessous en gras .

SELECT COUNT(DISTINCT id) as DAU
    FROM users
    WHERE date_joined > NOW() - INTERVAL 1 DAY and status=4;

Si vous souhaitez calculer les utilisateurs actifs hebdomadaires (WAU) pour chaque semaine dans vos données, utilisez la requête SQL suivante. Dans ce cas, nous utilisons simplement la fonction WEEK pour agréger les utilisateurs en fonction de leur last_login valeurs.

mysql> SELECT WEEK(last_login) AS WEEK,
            COUNT(user_id) AS WAU
         FROM users
         GROUP BY WEEK(last_login);
+------+-----+
| WEEK | WAU |
+------+-----+
|    9 |   7 |
|   10 |   7 |
|   11 |   2 |
|   12 |  ...|
+------+-----+

Vous pouvez facilement personnaliser la requête ci-dessus pour calculer les utilisateurs actifs hebdomadaires (WAU) dans MySQL et les tracer sur un graphique linéaire.

Si vous souhaitez calculer le nombre d'utilisateurs qui reviennent chaque semaine sur votre site Web, voici comment calculer le taux de rétention en SQL.

Si vous souhaitez calculer les utilisateurs actifs hebdomadaires pour chaque jour, c'est-à-dire les utilisateurs actifs des 6 jours précédents, pour chaque jour, vous pouvez utiliser la requête suivante. Ici, nous calculons également DAU (utilisateurs actifs quotidiens) aux côtés de WAU.

mysql> SELECT d.day
          , COUNT(DISTINCT u.user_id) AS wau
          , COUNT(DISTINCT IF(u.day=d.day,u.user_id,NULL)) AS dau
       FROM ( SELECT DATE(k.last_login) AS `day`
                FROM users k
               GROUP BY `day`
            ) d
       JOIN ( SELECT DATE(l.last_login) AS `day`
                   , l.user_id
                FROM users l
               GROUP BY `day`, l.user_id
            ) u
         ON u.day <= d.day AND u.day > DATE_ADD(d.day, INTERVAL -7 DAY)
      GROUP BY d.day
      ORDER BY d.day;
+------------+-----+-----+
| day        | wau | dau |
+------------+-----+-----+
| 2020-03-01 |   1 |   1 |
| 2020-03-02 |   2 |   1 |
| 2020-03-03 |   3 |   1 |
| 2020-03-04 |   4 |   1 |
| 2020-03-05 |   5 |   1 |
| 2020-03-06 |   6 |   1 |
| 2020-03-07 |   7 |   1 |
| 2020-03-08 |   7 |   1 |
| 2020-03-09 |   7 |   1 |
| 2020-03-10 |   7 |   1 |
| 2020-03-11 |   7 |   1 |
| 2020-03-12 |   7 |   1 |
| 2020-03-13 |   8 |   2 |
| 2020-03-15 |   7 |   1 |
| 2020-03-16 |   7 |   1 |
+------------+-----+-----+

Dans la requête ci-dessus, pour chaque jour, nous comptons le nombre d'utilisateurs distincts qui se sont connectés ce jour-là et les 6 jours précédents.

Vous avez maintenant vu différentes façons de calculer les utilisateurs actifs hebdomadaires (WAU) dans MySQL. Vous pouvez les personnaliser selon vos besoins.

Vous pouvez également utiliser un outil graphique pour tracer les utilisateurs actifs hebdomadaires dans un graphique à barres et le partager avec votre équipe. Voici un exemple de graphique à barres qui montre WAU, créé à l'aide d'Ubiq

Si vous souhaitez créer des graphiques, des tableaux de bord et des rapports à partir de la base de données MySQL, vous pouvez essayer Ubiq. Nous offrons un essai gratuit de 14 jours.