Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để có được tổng số người dùng tích lũy mỗi ngày trong MySQL

Tổng số người dùng tích lũy hàng ngày là một chỉ số KPI rất hữu ích để phân tích sự tăng trưởng của người dùng cho mọi doanh nghiệp. Tuy nhiên, vì không có chức năng tích hợp nào để tính toán tổng số người dùng đang chạy trong MySQL, nên đây là truy vấn SQL để lấy tổng số người dùng tích lũy mỗi ngày, còn được gọi là tổng số người dùng đang chạy theo ngày hoặc đang chạy.

Cách đạt được Tổng số người dùng tích lũy mỗi ngày trong MySQL

Dưới đây là các bước để có được tổng số người dùng tích lũy mỗi ngày trong MySQL. Giả sử bạn có bảng sau người dùng (date_joined, user_id) chứa tất cả id người dùng với ngày đăng ký / đăng ký / gia nhập doanh nghiệp của bạn.

mysql> create table users(date_joined date,user_id int);

mysql> insert into users(date_joined,user_id)
       values('2020-04-28',213),
       ('2020-04-28',214),
       ('2020-04-30',215),
       ('2020-04-28',216),
       ('2020-04-28',217),
       ('2020-04-30',218),
       ('2020-04-28',219),
       ('2020-04-28',220),
       ('2020-04-30',221),
       ('2020-05-01',222),
       ('2020-05-01',222),
       ('2020-05-01',223),
       ('2020-05-04',224),
       ('2020-05-04',225),
       ('2020-05-04',226),
       ('2020-05-04',226),
       ('2020-05-04',227),
       ('2020-05-04',228),
       ('2020-05-05',229),
       ('2020-05-05',230),
       ('2020-05-05',231),
       ('2020-05-05',232),
       ('2020-05-06',233),
       ('2020-05-06', 234);

mysql> select * from users;
+-------------+---------+
| date_joined | user_id |
+-------------+---------+
| 2020-04-28  |     213 |
| 2020-04-28  |     214 |
| 2020-04-30  |     215 |
| 2020-04-28  |     216 |
| 2020-04-28  |     217 |
| 2020-04-30  |     218 |
| 2020-04-28  |     219 |
| 2020-04-28  |     220 |
| 2020-04-30  |     221 |
| 2020-05-01  |     222 |
| 2020-05-01  |     222 |
| 2020-05-01  |     223 |
| 2020-05-04  |     224 |
| 2020-05-04  |     225 |
| 2020-05-04  |     226 |
| 2020-05-04  |     226 |
| 2020-05-04  |     227 |
| 2020-05-04  |     228 |
| 2020-05-05  |     229 |
| 2020-05-05  |     230 |
| 2020-05-05  |     231 |
| 2020-05-05  |     232 |
| 2020-05-06  |     233 |
| 2020-05-06  |     234 |
+-------------+---------+

Đầu tiên, chúng tôi xem xét một truy vấn SQL để tính số lượng đăng ký hàng ngày

mysql> select date(date_joined),count(user_id) 
       from users 
       group by date(date_joined);
+-------------------+----------------+
| date(date_joined) | count(user_id) |
+-------------------+----------------+
| 2020-04-28        |        6       |
| 2020-04-30        |        3       |
| 2020-05-01        |        3       |
| 2020-05-04        |        6       |
| 2020-05-05        |        4       |
| 2020-05-06        |        2       |
+-------------------+----------------+

Tiếp theo, đây là truy vấn SQL để có được tổng số người dùng tích lũy mỗi ngày trong MySQL. Chúng tôi sẽ sử dụng SQL ở trên làm truy vấn con để chạy toàn bộ SQL.

mysql> set @csum := 0;

mysql> select date_joined,new_users, (@csum := @csum + new_users) as total_users
            from (
             select date(date_joined) as date_joined,count(user_id) as new_users
             from users
             group by date(date_joined)
            ) as temp
            order by date_joined;
+-------------+-----------+-------------+
| date_joined | new_users | total_users |
+-------------+-----------+-------------+
| 2020-04-28  |         6 |           6 |
| 2020-04-30  |         3 |           9 |
| 2020-05-01  |         3 |          12 |
| 2020-05-04  |         6 |          18 |
| 2020-05-05  |         4 |          22 |
| 2020-05-06  |         2 |          24 |
+-------------+-----------+-------------+

Trong truy vấn trên, chúng tôi đặt một biến tạm thời csum thành 0. Sau đó, đối với mỗi hàng, chúng tôi sử dụng nó để tính toán và lưu trữ tổng tích lũy của người dùng.

Sau khi bạn có được tổng số người dùng tích lũy mỗi ngày trong MySQL, bạn có thể vẽ biểu đồ đường hoặc bảng điều khiển bằng cách sử dụng công cụ báo cáo như Ubiq và chia sẻ nó với nhóm của bạn. Đây là biểu đồ đường được tạo bằng Ubiq.

Nếu bạn muốn nhận tổng số chạy có điều kiện trong MySQL, thì bạn có thể thêm mệnh đề WHERE trong truy vấn con, tùy theo yêu cầu của bạn.

mysql> set @csum := 0;
mysql> select date_joined,new_users, (@csum := @csum + new_users) as total_users
            from (
             select date(date_joined) as date_joined,count(user_id) as new_users
             from users 
             WHERE <condition>
             group by date(date_joined)
            ) as temp
            order by date_joined;

Bạn có thể dễ dàng sửa đổi truy vấn SQL ở trên, để tính tổng số người dùng tích lũy theo tuần, tháng, quý và năm. Chúng ta hãy xem xét chúng từng cái một. Chúng tôi sẽ sử dụng hàm DATE_FORMAT để dễ dàng lấy các cột tuần, tháng từ ngày.

Phần thưởng Đọc:Cách tính Doanh thu trong MySQL

Cách đạt được Tổng số người dùng tích lũy mỗi tuần trong MySQL

Đây là truy vấn SQL để có được tổng số người dùng tích lũy theo tuần trong MySQL. Trong truy vấn SQL để có được tổng số người dùng tích lũy mỗi ngày, bạn chỉ cần thay đổi hàm tổng hợp trong truy vấn con, từ date (date_joined) thành date_format (date_format, ’% U’) .

mysql> set @csum := 0;
mysql> select date_joined,new_users, (@csum := @csum + new_users) as total_users
            from (
             select date_format(date_joined,'%U') as date_joined,
               count(user_id) as new_users
             from users
             group by date_format(date_joined,'%U')
            ) as temp
            order by date_joined;

Trong truy vấn trên, bạn cũng có thể sử dụng hàm WEEK thay vì DATE_FORMAT, nghĩa là sử dụng WEEK (date_joined) thay vì DATE_FORMAT (date_joined, ’% U’)

Phần thưởng đã đọc:Cách nhận bản ghi của tháng hiện tại trong MySQL

Cách đạt được Tổng số người dùng tích lũy mỗi tháng trong MySQL

Đây là truy vấn SQL để có được tổng số người dùng tích lũy theo tháng trong MySQL. Trong truy vấn SQL để có được tổng số người dùng tích lũy mỗi ngày, bạn chỉ cần thay đổi hàm tổng hợp trong truy vấn con, từ date (date_joined) thành date_format (date_format, ’% b’) .

mysql> set @csum := 0;

mysql> select date_joined,new_users, (@csum := @csum + new_users) as total_users
            from (
             select date_format(date_joined,'%b') as date_joined,
               count(user_id) as new_users
             from users
             group by date_format(date_joined,'%b')
            ) as temp
            order by date_joined;

Phần thưởng đã đọc:Cách nhận dữ liệu bán hàng 3 tháng qua trong MySQL

Cách đạt được Tổng số người dùng tích lũy mỗi quý trong MySQL

Đây là truy vấn SQL để có được tổng số người dùng tích lũy theo quý trong MySQL. Trong truy vấn SQL để có được tổng số người dùng tích lũy mỗi ngày, bạn chỉ cần thay đổi hàm tổng hợp trong truy vấn con, từ date (date_joined) sang quý (date_format) .

mysql> set @csum := 0;
mysql> select date_joined,new_users, (@csum := @csum + new_users) as total_users
            from (
             select quarter(date_joined) as date_joined,
               count(user_id) as new_users
             from users
             group by quarter(date_joined)
            ) as temp
            order by date_joined;

Cách đạt được Tổng số người dùng tích lũy mỗi năm trong MySQL

Đây là truy vấn SQL để có được tổng số người dùng tích lũy theo năm trong MySQL. Trong truy vấn SQL để có được tổng số người dùng tích lũy mỗi ngày, bạn chỉ cần thay đổi hàm tổng hợp trong truy vấn con, từ date (date_joined) đến năm (date_format) .

mysql> set @csum := 0;
mysql> select date_joined,new_users, (@csum := @csum + new_users) as total_users
            from (
             select year(date_joined) as date_joined,
               count(user_id) as new_users
             from users
             group by year(date_joined)
            ) as temp
            order by date_joined;

Đó là nó! Bạn có thể thử các truy vấn SQL ở trên để có được tổng số người dùng tích lũy mỗi ngày trong MySQL. Nếu bạn muốn tạo biểu đồ, trang tổng quan và báo cáo từ cơ sở dữ liệu MySQL, bạn có thể thử Ubiq. Chúng tôi cung cấp bản dùng thử miễn phí 14 ngày.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách xử lý phân mảnh cột ID auto_increment trong MySQL

  2. Cách tính Tổng tích lũy trong MySQL

  3. JSON_REMOVE () - Xóa dữ liệu khỏi tài liệu JSON trong MySQL

  4. Làm thế nào để có được số lượng của mỗi giá trị khác nhau trong một cột?

  5. Cách giải nén chuỗi con trong MySQL