sql >> Databáze >  >> RDS >> Mysql

Jak vypočítat týdenní aktivní uživatele (WAU) v MySQL

Weekly Active Users (WAU) je užitečný klíčový ukazatel výkonu (KPI), který lze sledovat pro každý online obchod. Poskytuje vám představu o tom, kolik lidí používá váš produkt/službu alespoň jednou týdně. Zde je návod, jak vypočítat Weekly Active Users (WAU) v MySQL.

Jak vypočítat týdenní aktivní uživatele (WAU) v MySQL

Řekněme, že máte následující tabulku users(user_id, last_login). poslední_přihlášení je časové razítko posledního přihlášení uživatele. Některé systémy také ukládají toto časové razítko jako datum_změny, aktualizováno_at atd.

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

Zde je dotaz SQL pro výpočet Weekly Active Users (WAU) v MySQL za poslední 1 týden.

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

Bonusové čtení:Jak vypočítat měsíční aktivní uživatele (MAU) v MySQL

Chcete-li ke svému dotazu přidat filtry (např. status=4), můžete je přidat do klauzule WHERE, jak je uvedeno níže tučně .

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

Pokud chcete vypočítat Weekly Active Users (WAU) pro každý týden ve vašich datech, použijte následující SQL dotaz. V tomto případě jednoduše použijeme funkci WEEK k agregaci uživatelů na základě jejich posledního_přihlášení hodnoty.

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

Výše uvedený dotaz můžete snadno přizpůsobit pro výpočet Weekly Active Users (WAU) v MySQL a vykreslit je do spojnicového grafu.

Pokud chcete vypočítat, kolik uživatelů se každý týden vrátí na váš web, zde je návod, jak vypočítat míru udržení v SQL.

Pokud chcete vypočítat týdenní aktivní uživatele pro každý den, tedy aktivní uživatele za předchozích 6 dní, pro každý den, můžete použít následující dotaz. Zde také počítáme DAU (denní aktivní uživatelé) spolu s 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 |
+------------+-----+-----+

Ve výše uvedeném dotazu pro každý den počítáme počet různých uživatelů, kteří se přihlásili v daný den a před 6 dny.

Nyní jste viděli různé způsoby výpočtu týdenních aktivních uživatelů (WAU) v MySQL. Můžete si je přizpůsobit podle svých požadavků.

Můžete také použít nástroj pro vytváření grafů k vykreslení týdenních aktivních uživatelů do sloupcového grafu a jejich sdílení se svým týmem. Zde je příklad sloupcového grafu, který ukazuje WAU, vytvořený pomocí Ubiq

Pokud chcete vytvářet grafy, dashboardy a sestavy z databáze MySQL, můžete zkusit Ubiq. Nabízíme 14denní bezplatnou zkušební verzi.

  1. Postgres - VYTVOŘTE TABULKU Z VÝBĚRU

  2. Správný způsob implementace jedinečného omezení, které umožňuje více hodnot NULL v SQL Server

  3. Konfigurace vyhrazené sítě pro komunikaci skupiny dostupnosti

  4. SQLite nemůže otevřít soubor databáze (kód 14) při častém dotazu SELECT