Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So berechnen Sie wöchentlich aktive Benutzer (WAU) in MySQL

Weekly Active Users (WAU) ist ein nützlicher Key Performance Indicator (KPI), den Sie für jedes Online-Geschäft verfolgen können. Es gibt Ihnen eine Vorstellung davon, wie viele Personen Ihr Produkt/Ihre Dienstleistung mindestens einmal pro Woche nutzen. So berechnen Sie Weekly Active Users (WAU) in MySQL.

So berechnen Sie wöchentlich aktive Benutzer (WAU) in MySQL

Nehmen wir an, Sie haben die folgende Tabelle users(user_id, last_login). last_login ist der Zeitstempel der letzten Anmeldung eines Benutzers. Einige Systeme speichern diesen Zeitstempel auch als Modified_date, Updated_at usw.

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 |
+---------+---------------------+

Hier ist die SQL-Abfrage zur Berechnung der wöchentlich aktiven Benutzer (WAU) in MySQL für die letzte Woche.

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

Bonuslektüre:So berechnen Sie monatlich aktive Benutzer (MAU) in MySQL

Wenn Sie Filter (z. B. Status=4) zu Ihrer Abfrage hinzufügen möchten, können Sie diese der WHERE-Klausel hinzufügen, wie unten fett dargestellt .

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

Wenn Sie Weekly Active Users (WAU) für jede Woche in Ihren Daten berechnen möchten, verwenden Sie die folgende SQL-Abfrage. In diesem Fall verwenden wir einfach die WEEK-Funktion, um Benutzer basierend auf ihrem last_login zusammenzufassen Werte.

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 |  ...|
+------+-----+

Sie können die obige Abfrage ganz einfach anpassen, um die wöchentlich aktiven Benutzer (WAU) in MySQL zu berechnen und sie in einem Liniendiagramm darzustellen.

Wenn Sie berechnen möchten, wie viele Benutzer jede Woche auf Ihre Website zurückkehren, können Sie die Retention Rate in SQL wie folgt berechnen.

Wenn Sie wöchentlich aktive Benutzer für jeden Tag berechnen möchten, d. h. aktive Benutzer für die vorangegangenen 6 Tage, für jeden Tag, können Sie die folgende Abfrage verwenden. Hier berechnen wir neben WAU auch DAU (Daily Active Users).

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 |
+------------+-----+-----+

In der obigen Abfrage zählen wir für jeden Tag die Anzahl der einzelnen Benutzer, die sich an diesem Tag und den vorangegangenen 6 Tagen angemeldet haben.

Jetzt haben Sie verschiedene Möglichkeiten zur Berechnung der wöchentlich aktiven Benutzer (WAU) in MySQL gesehen. Sie können sie gemäß Ihren Anforderungen anpassen.

Sie können auch ein Diagrammtool verwenden, um wöchentlich aktive Benutzer in einem Balkendiagramm darzustellen und mit Ihrem Team zu teilen. Hier ist ein Beispiel für ein Balkendiagramm, das WAU zeigt, erstellt mit Ubiq

Wenn Sie Diagramme, Dashboards und Berichte aus einer MySQL-Datenbank erstellen möchten, können Sie Ubiq ausprobieren. Wir bieten eine 14-tägige kostenlose Testversion an.