Дневните кумулативни общи потребители е много полезен показател за 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-дневен безплатен пробен период.