Dagelijks cumulatief totaal aantal gebruikers is een zeer nuttige KPI-statistiek voor het analyseren van gebruikersgroei, voor elk bedrijf. Aangezien er echter geen ingebouwde functie is om het lopende totaal in MySQL te berekenen, volgt hier de SQL-query om het cumulatieve totale aantal gebruikers per dag te krijgen, ook wel bekend als voortschrijdende som op datum of lopend totaal van gebruikers.
Hoe u een cumulatief totaal aantal gebruikers per dag in MySQL kunt krijgen
Hier zijn de stappen om het cumulatieve totale aantal gebruikers per dag in MySQL te krijgen. Stel dat u de volgende tabel users(date_joined,user_id) heeft die alle gebruikers-ID's bevat met hun datum van registratie/aanmelding/lidmaatschap voor uw bedrijf.
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 | +-------------+---------+
Eerst kijken we naar een SQL-query om het dagelijkse aantal aanmeldingen te berekenen
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 | +-------------------+----------------+
Vervolgens is hier de SQL-query om het cumulatieve totale aantal gebruikers per dag in MySQL te krijgen. We zullen de bovenstaande SQL gebruiken als een subquery om het totaal in SQL te krijgen.
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 | +-------------+-----------+-------------+
In de bovenstaande query stellen we een tijdelijke variabele csum in op 0. Vervolgens gebruiken we deze voor elke rij om de cumulatieve som van gebruikers te berekenen en op te slaan.
Nadat u het cumulatieve totale aantal gebruikers per dag in MySQL hebt gekregen, kunt u dit in een lijndiagram of dashboard plotten met behulp van een rapportagetool zoals Ubiq en deze delen met uw team. Hier is een lijndiagram gemaakt met Ubiq.
Als u een voorwaardelijk lopend totaal in MySQL wilt krijgen, kunt u een WHERE-clausule in de subquery toevoegen, afhankelijk van uw vereisten.
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;
U kunt de bovenstaande SQL-query eenvoudig wijzigen om het totale aantal gebruikers per week, maand, kwartaal en jaar te berekenen. Laten we ze een voor een bekijken. We gebruiken de functie DATE_FORMAT om gemakkelijk kolommen voor week, maand vanaf de datum te krijgen.
Bonus Lezen:Hoe de inkomsten in MySQL te berekenen
Hoe u een cumulatief totaal aantal gebruikers per week in MySQL kunt krijgen
Hier is de SQL-query om het totale aantal gebruikers per week in MySQL te krijgen. In de SQL-query om het cumulatieve totale aantal gebruikers per dag te krijgen, hoeft u alleen de aggregatiefunctie in de subquery te wijzigen, van date(date_joined) naar 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;
In de bovenstaande query kunt u ook de WEEK-functie gebruiken in plaats van DATE_FORMAT, dat wil zeggen, WEEK(date_joined) gebruiken in plaats van DATE_FORMAT(date_joined,'%U')
Bonus lezen:hoe u records van de huidige maand in MySQL kunt krijgen
Hoe u een cumulatief totaal aantal gebruikers per maand in MySQL kunt krijgen
Hier is de SQL-query om het cumulatieve totale aantal gebruikers per maand in MySQL te krijgen. In de SQL-query om het cumulatieve totale aantal gebruikers per dag te krijgen, hoeft u alleen de aggregatiefunctie in de subquery te wijzigen, van date(date_joined) naar 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 lezen:hoe u verkoopgegevens van de laatste 3 maanden in MySQL kunt krijgen
Hoe u een cumulatief totaal aantal gebruikers per kwartaal in MySQL kunt krijgen
Hier is de SQL-query om het cumulatieve totale aantal gebruikers per kwartaal in MySQL te krijgen. In de SQL-query om het cumulatieve totale aantal gebruikers per dag te krijgen, hoeft u alleen de aggregatiefunctie in de subquery te wijzigen, van date(date_joined) tot kwartaal(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;
Hoe u een cumulatief totaal aantal gebruikers per jaar in MySQL kunt krijgen
Hier is de SQL-query om het cumulatieve totale aantal gebruikers per jaar in MySQL te krijgen. In de SQL-query om het cumulatieve totale aantal gebruikers per dag te krijgen, hoeft u alleen de aggregatiefunctie in de subquery te wijzigen, van date(date_joined) tot jaar(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;
Dat is het! U kunt de bovenstaande SQL-query's proberen om het cumulatieve totale aantal gebruikers per dag in MySQL te krijgen. Als u grafieken, dashboards en rapporten wilt maken vanuit de MySQL-database, kunt u Ubiq proberen. We bieden een gratis proefperiode van 14 dagen.