Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да изчислим седмично активни потребители (WAU) в MySQL

Седмичните активни потребители (WAU) е полезен ключов индикатор за ефективност (KPI), който да се проследява за всеки онлайн бизнес. Това ви дава представа колко хора използват вашия продукт/услуга поне веднъж седмично. Ето как да изчислите седмично активни потребители (WAU) в MySQL.

Как да изчислим седмично активни потребители (WAU) в MySQL

Да приемем, че имате следните потребители на таблицата (user_id, last_login). последно_вход е клеймото за време на последния път, когато потребител е влязъл. Някои системи също съхраняват това времеви печат като modified_date, updated_at и т.н.

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

Ето SQL заявката за изчисляване на седмично активни потребители (WAU) в MySQL за последната 1 седмица.

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

Бонус чети:Как да изчислим месечно активни потребители (MAU) в MySQL

Ако искате да добавите филтри (напр. status=4) към вашата заявка, можете да я добавите към клаузата WHERE, както е показано по-долу с удебелен .

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

Ако искате да изчислите седмично активни потребители (WAU) за всяка седмица във вашите данни, използвайте следната SQL заявка. В този случай ние просто използваме функцията WEEK за обобщаване на потребителите въз основа на тяхното последно_влизане стойности.

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

Можете лесно да персонализирате заявката по-горе, за да изчислите седмично активни потребители (WAU) в MySQL и да ги начертаете на линейна диаграма.

Ако искате да изчислите колко потребители се връщат на уебсайта ви всяка седмица, ето как да изчислите степента на задържане в SQL.

Ако искате да изчислите седмично активни потребители за всеки ден, тоест активни потребители за предходните 6 дни, за всеки ден, тогава можете да използвате следната заявка. Тук също така изчисляваме DAU (дневно активни потребители) заедно с 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 |
+------------+-----+-----+

В горната заявка за всеки ден отчитаме броя на отделните потребители, които са влезли в този ден и предходните 6 дни.

Вече видяхте различни начини за изчисляване на седмично активни потребители (WAU) в MySQL. Можете да ги персонализирате според вашите изисквания.

Можете също да използвате инструмент за диаграми, за да начертаете седмично активни потребители в лентата и да я споделите с вашия екип. Ето пример за стълбовидна диаграма, която показва WAU, създадена с Ubiq

Ако искате да създавате диаграми, табла за управление и отчети от MySQL база данни, можете да опитате Ubiq. Предлагаме 14-дневен безплатен пробен период.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wordpress Фатална грешка:Неуловена грешка:Извикване на недефинирана функция mysql_connect() в /wp-includes/wp-db.php:1570

  2. PHP и mySQL:Бъг от 2038 г.:Какво е това? Как да го реша?

  3. Как да намеря местоположението на MySQL my.cnf

  4. Как да получите текущата дата в MySQL

  5. Възстановяване на достъп до изгубена парола за MySQL за PHPMyAdmin на WAMP