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

Как да получите общия брой потребители на ден в MySQL

Дневните кумулативни общи потребители е много полезен показател за KPI за анализиране на растежа на потребителите за всеки бизнес. Въпреки това, тъй като няма вградена функция за изчисляване на текущия общ брой в MySQL, ето SQL заявката за получаване на кумулативен общ брой потребители на ден, известна също като подвижна сума по дата или текуща сума от потребители.

Как да получите общия брой потребители на ден в MySQL

Ето стъпките за получаване на кумулативен брой потребители на ден в MySQL. Да приемем, че имате следната таблица user(date_joined,user_id) който съдържа всички потребителски идентификатори с тяхната дата на регистрация/регистрация/присъединяване към вашия бизнес.

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

Първо, разглеждаме SQL заявка, за да изчислим дневния брой регистрирания

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

След това, ето SQL заявката за получаване на кумулативни общи потребители на ден в MySQL. Ще използваме горния SQL като подзаявка, за да получим общо в 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 |
+-------------+-----------+-------------+

В горната заявка зададохме временна променлива csum на 0. След това за всеки ред я използваме за изчисляване и съхраняване на кумулативната сума на потребителите.

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

Ако искате да получите условна текуща сума в MySQL, тогава можете да добавите клауза WHERE в подзаявката, според вашето изискване.

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;

Можете лесно да промените горната SQL заявка, за да изчислите общия брой потребители по седмица, месец, тримесечие и година. Нека ги разгледаме един по един. Ще използваме функцията DATE_FORMAT за лесно получаване на колони за седмица, месец от дата.

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

Как да получите общия брой потребители на седмица в MySQL

Ето SQL заявката за получаване на кумулативен общ брой потребители по седмица в MySQL. В SQL заявката, за да получите кумулативен общ брой потребители на ден, просто трябва да промените функцията за агрегиране в подзаявката от date(date_joined) до format_date(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;

В горната заявка можете също да използвате функцията WEEK вместо DATE_FORMAT, тоест да използвате WEEK(date_joined) вместо DATE_FORMAT(date_joined,’%U’)

Бонус четене:Как да получите записи за текущия месец в MySQL

Как да получите общия брой потребители на месец в MySQL

Ето SQL заявката за получаване на кумулативен общ брой потребители по месеци в MySQL. В SQL заявката, за да получите кумулативен общ брой потребители на ден, просто трябва да промените функцията за агрегиране в подзаявката от date(date_joined) до format_date(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;

Бонус четене:Как да получите данни за продажбите за последните 3 месеца в MySQL

Как да получите общия брой потребители на тримесечие в MySQL

Ето SQL заявката за получаване на кумулативни общи потребители по тримесечие в MySQL. В SQL заявката, за да получите кумулативен общ брой потребители на ден, просто трябва да промените функцията за агрегиране в подзаявката от date(date_joined) до тримесечие(формат_дата) .

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;

Как да получите общия брой потребители на година в MySQL

Ето SQL заявката за получаване на кумулативни общи потребители по година в MySQL. В SQL заявката, за да получите кумулативен общ брой потребители на ден, просто трябва да промените функцията за агрегиране в подзаявката от date(date_joined) до година(формат_дата) .

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;

Това е! Можете да опитате горните SQL заявки, за да получите кумулативни общи потребители на ден в MySQL. Ако искате да създавате диаграми, табла за управление и отчети от 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. Как да импортирате база данни с помощта на командния ред

  2. MySQL Изберете дата, равна на днес

  3. MySql Транспониране на ред в колона и колона в ред

  4. Какво представлява низът за свързване на MySQL JDBC драйвер?

  5. Как да разделя изхода от mysqldump на по-малки файлове?