Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Menghitung Pengguna Aktif Mingguan (WAU) di MySQL

Pengguna Aktif Mingguan (WAU) adalah indikator kinerja utama (KPI) yang berguna untuk dilacak untuk setiap bisnis online. Ini memberi Anda gambaran tentang berapa banyak orang yang menggunakan produk/layanan Anda setidaknya sekali seminggu. Berikut cara menghitung Pengguna Aktif Mingguan (WAU) di MySQL.

Cara Menghitung Pengguna Aktif Mingguan (WAU) di MySQL

Katakanlah Anda memiliki pengguna tabel berikut (user_id, last_login). login_terakhir adalah stempel waktu terakhir kali pengguna masuk. Beberapa sistem juga menyimpan stempel waktu ini sebagai tanggal_modifikasi, pemutakhiran_at, dll.

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

Berikut query SQL untuk menghitung Weekly Active Users (WAU) di MySQL, selama 1 minggu terakhir.

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

Bonus baca:Cara Menghitung Monthly Active Users (MAU) di MySQL

Jika Anda ingin menambahkan filter (mis. status=4) ke kueri, Anda dapat menambahkannya ke klausa WHERE, seperti yang ditunjukkan di bawah dalam tebal .

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

Jika Anda ingin menghitung Pengguna Aktif Mingguan (WAU) untuk setiap minggu dalam data Anda, gunakan kueri SQL berikut. Dalam hal ini, kami cukup menggunakan fungsi WEEK untuk menggabungkan pengguna berdasarkan last_login mereka nilai.

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

Anda dapat dengan mudah menyesuaikan kueri di atas untuk menghitung Pengguna Aktif Mingguan (WAU) di MySQL, dan memplotnya pada diagram garis.

Jika Anda ingin menghitung berapa banyak pengguna yang kembali ke situs Anda setiap minggu, berikut ini cara menghitung tingkat retensi di SQL.

Jika Anda ingin menghitung Pengguna Aktif Mingguan untuk setiap hari, yaitu pengguna aktif selama 6 hari sebelumnya, untuk setiap hari, maka Anda dapat menggunakan kueri berikut. Di sini kami juga menghitung DAU (Pengguna aktif harian) bersama 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 |
+------------+-----+-----+

Dalam kueri di atas, untuk setiap hari, kami menghitung jumlah pengguna berbeda yang masuk pada hari itu dan 6 hari sebelumnya.

Sekarang Anda telah melihat berbagai cara untuk menghitung pengguna aktif mingguan (WAU) di MySQL. Anda dapat menyesuaikannya sesuai kebutuhan Anda.

Anda juga dapat menggunakan alat pembuatan bagan untuk memplot pengguna aktif mingguan dalam bagan batang dan membagikannya dengan tim Anda. Berikut adalah contoh diagram batang yang menunjukkan WAU, dibuat menggunakan Ubiq

Jika Anda ingin membuat grafik, dasbor &laporan dari database MySQL, Anda dapat mencoba Ubiq. Kami menawarkan uji coba gratis selama 14 hari.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. kueri mysql menampilkan beberapa tabel dari satu kolom ID

  2. Cara Menginstal MySQL di Debian 7

  3. Gunakan ekstensi spasial MySQL untuk memilih titik di dalam lingkaran

  4. Apakah ada SQLite yang setara dengan DESCRIBE [tabel] MySQL?

  5. MySQL:NULL vs