Dagliga kumulativa totala användare är ett mycket användbart KPI-mått för att analysera användartillväxt, för varje företag. Men eftersom det inte finns någon inbyggd funktion för att beräkna löpande totalsumma i MySQL, här är SQL-frågan för att få kumulativt totalt antal användare per dag, även känd som rullande summa efter datum eller löpande summa användare.
Hur man får totalt antal användare per dag i MySQL
Här är stegen för att få totalt antal användare per dag i MySQL. Låt oss säga att du har följande tabell users(date_joined,user_id) som innehåller alla användar-ID med deras datum för registrering/registrering/anslutning för ditt företag.
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 | +-------------+---------+
Först tittar vi på en SQL-fråga för att beräkna det dagliga antalet registreringar
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 | +-------------------+----------------+
Nästa, här är SQL-frågan för att få kumulativt antal användare per dag i MySQL. Vi kommer att använda ovanstående SQL som en underfråga för att få löpande totalt i 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 | +-------------+-----------+-------------+
I ovanstående fråga ställer vi in en temporär variabel csum till 0. Sedan använder vi den för varje rad för att beräkna och lagra den kumulativa summan av användare.
När du har fått kumulativt totalt antal användare per dag i MySQL kan du plotta det på ett linjediagram eller instrumentpanel med ett rapporteringsverktyg som Ubiq och dela det med ditt team. Här är ett linjediagram skapat med Ubiq.
Om du vill få en villkorad löpande totalsumma i MySQL kan du lägga till en WHERE-sats i underfrågan, enligt dina krav.
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;
Du kan enkelt ändra ovanstående SQL-fråga för att beräkna det totala antalet användare per vecka, månad, kvartal och år. Låt oss titta på dem en efter en. Vi kommer att använda DATE_FORMAT-funktionen för att enkelt få vecka, månad från datumkolumner.
Bonus Läs:Hur man beräknar intäkter i MySQL
Hur man får totalt antal användare per vecka i MySQL
Här är SQL-frågan för att få totalt antal användare per vecka i MySQL. I SQL-frågan för att få kumulativt antal användare per dag behöver du bara ändra aggregeringsfunktionen i underfrågan, från date(date_joined) till 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;
I ovanstående fråga kan du också använda WEEK-funktionen istället för DATE_FORMAT, det vill säga använda WEEK(date_joined) istället för DATE_FORMAT(date_joined,'%U')
Bonus Läs:Hur man får uppgifter om aktuell månad i MySQL
Hur får man kumulativt totalt antal användare per månad i MySQL
Här är SQL-frågan för att få totalt antal användare per månad i MySQL. I SQL-frågan för att få kumulativt antal användare per dag behöver du bara ändra aggregeringsfunktionen i underfrågan, från date(date_joined) till 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;
Bonusläs:Hur man får de senaste 3 månadernas försäljningsdata i MySQL
Hur får man kumulativt totalt antal användare per kvartal i MySQL
Här är SQL-frågan för att få totalt antal användare per kvartal i MySQL. I SQL-frågan för att få kumulativt antal användare per dag behöver du bara ändra aggregeringsfunktionen i underfrågan, från date(date_joined) till quarter(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;
Hur man får kumulativt antal användare per år i MySQL
Här är SQL-frågan för att få totalt antal användare per år i MySQL. I SQL-frågan för att få totalt antal användare per dag behöver du bara ändra aggregeringsfunktionen i underfrågan, från date(date_joined) till år(datumformat) .
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;
Det är allt! Du kan prova ovanstående SQL-frågor för att få totalt antal användare per dag i MySQL. Om du vill skapa diagram, instrumentpaneler och rapporter från MySQL-databasen kan du prova Ubiq. Vi erbjuder en 14-dagars gratis provperiod.