Daglige kumulative samlede brugere er en meget nyttig KPI-måling til at analysere brugervækst for enhver virksomhed. Men da der ikke er nogen indbygget funktion til at beregne løbende total i MySQL, er her SQL-forespørgslen til at få kumulative samlede brugere pr. dag, også kendt som rullende sum efter dato eller løbende antal brugere.
Sådan får du kumulativt antal brugere pr. dag i MySQL
Her er trinene til at få kumulative samlede brugere pr. dag i MySQL. Lad os sige, at du har følgende tabel users(date_joined,user_id) der indeholder alle bruger-id'erne med deres dato for registrering/tilmelding/tilmelding til din virksomhed.
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 ser vi på en SQL-forespørgsel for at beregne det daglige antal tilmeldinger
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 | +-------------------+----------------+
Dernæst er her SQL-forespørgslen for at få kumulative samlede brugere pr. dag i MySQL. Vi vil bruge ovenstående SQL som en underforespørgsel for at få kørende total 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 ovenstående forespørgsel sætter vi en midlertidig variabel csum til 0. Derefter bruger vi den for hver række til at beregne og gemme den kumulative sum af brugere.
Når du har fået kumulative samlede brugere pr. dag i MySQL, kan du plotte det på et linjediagram eller dashboard ved hjælp af et rapporteringsværktøj som Ubiq og dele det med dit team. Her er et linjediagram oprettet ved hjælp af Ubiq.
Hvis du ønsker at få en betinget løbende total i MySQL, så kan du tilføje en WHERE-klausul i underforespørgslen efter dit 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 nemt ændre ovenstående SQL-forespørgsel for at beregne det samlede antal brugere efter uge, måned, kvartal og år. Lad os se på dem én efter én. Vi vil bruge DATE_FORMAT-funktionen til nemt at få uge, måned fra datokolonner.
Bonus Læs:Sådan beregnes omsætning i MySQL
Sådan får du kumulativt antal brugere pr. uge i MySQL
Her er SQL-forespørgslen for at få kumulative samlede brugere pr. uge i MySQL. I SQL-forespørgslen for at få samlet antal brugere pr. dag, skal du blot ændre aggregeringsfunktionen i underforespørgsel fra date(date_joined) til 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 ovenstående forespørgsel kan du også bruge WEEK-funktionen i stedet for DATE_FORMAT, dvs. bruge WEEK(date_joined) i stedet for DATE_FORMAT(date_joined,'%U')
Bonus Læs:Sådan får du optegnelser over den aktuelle måned i MySQL
Sådan får du kumulativt antal brugere pr. måned i MySQL
Her er SQL-forespørgslen for at få kumulative samlede brugere efter måned i MySQL. I SQL-forespørgslen for at få samlet antal brugere pr. dag, skal du blot ændre aggregeringsfunktionen i underforespørgsel fra date(date_joined) til 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;
Bonus Læs:Sådan får du sidste 3 måneders salgsdata i MySQL
Sådan får du kumulative samlede brugere pr. kvartal i MySQL
Her er SQL-forespørgslen for at få kumulative samlede brugere efter kvartal i MySQL. I SQL-forespørgslen for at få samlet antal brugere pr. dag, skal du blot ændre aggregeringsfunktionen i underforespørgsel fra date(date_joined) til 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;
Sådan får du kumulativt antal brugere pr. år i MySQL
Her er SQL-forespørgslen for at få kumulative samlede brugere efter år i MySQL. I SQL-forespørgslen for at få kumulativt antal brugere pr. dag, skal du blot ændre aggregeringsfunktionen i underforespørgsel fra date(date_joined) til år(dato_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;
Det er det! Du kan prøve ovenstående SQL-forespørgsler for at få kumulative samlede brugere pr. dag i MySQL. Hvis du vil oprette diagrammer, dashboards og rapporter fra MySQL-databasen, kan du prøve Ubiq. Vi tilbyder en 14-dages gratis prøveperiode.