sql >> Database >  >> RDS >> Mysql

Nieuwe gebruikers per dag krijgen in MySQL

Het is erg belangrijk om voor elk bedrijf nieuwe gebruikers per dag te tellen. U kunt het gebruiken om dagelijks nieuwe gebruikers te tellen, het totale aantal geregistreerde gebruikers op datum te analyseren en zelfs een dagrapport te maken. Hier leest u hoe u nieuwe gebruikers per dag in MySQL kunt krijgen.

Hoe nieuwe gebruikers per dag te krijgen in MySQL

Hier zijn de stappen om nieuwe gebruikers per dag in MySQL te krijgen. Je kunt het gebruiken om geregistreerde gebruikers per dag te tellen.

Stel dat u een tabel heeft users(user_id, date_joined) die alle gebruikers-ID's opslaat samen met hun datum van deelname/registratie/aanmelding.

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

Bonus lezen:hoe u verkoopgegevens van de laatste 3 maanden in MySQL kunt krijgen

In dit geval heeft u slechts 1 record per gebruiker, zodat u gemakkelijk nieuwe gebruikers in MySQL kunt krijgen door een datumgewijze telling in SQL uit te voeren. Hier is de SQL-query om records per dag in MySQL te tellen.

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

In de bovenstaande zoekopdracht gebruiken we eenvoudig een DATE-aggregatiefunctie om het dagelijkse aantal geregistreerde gebruikers te tellen.

Bonus lezen:hoe u records van de huidige maand in MySQL kunt krijgen

Als u gegevens wilt filteren op basis van specifieke voorwaarden, kunt u een WHERE-clausule toevoegen, zoals hieronder weergegeven.

mysql> select date(date_joined),count(*) 
       from users 
       WHERE <condition>
       group by date(date_joined);

Bonus lezen:CSV-bestand importeren in MySQL Workbench

Als u ook het cumulatieve totale aantal gebruikers per dag wilt berekenen, dan is hier de SQL-query om nieuwe gebruikers per dag in MySQL te krijgen. We zullen het resultaat van bovenstaande zoekopdracht gebruiken als invoer om het totale aantal geregistreerde nieuwe gebruikers per dag te berekenen.

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 het aantal gebruikers te berekenen en op te slaan.

Nadat u nieuwe gebruikers in MySQL hebt gekregen, kunt u deze plotten op een lijndiagram of dashboard met behulp van een rapportagetool zoals Ubiq en deze delen met uw team. Hier is een lijndiagram gemaakt met Ubiq.

Hopelijk kunt u nieuwe gebruikers krijgen in MySQL. Als u grafieken, dashboards en rapporten wilt maken vanuit de MySQL-database, kunt u Ubiq proberen. We bieden een gratis proefperiode van 14 dagen aan.

  1. SQLiteDatabase-fout, nutteloos logboek

  2. Hoe dwingt PostgreSQL de UNIQUE-beperking af / welk type index gebruikt het?

  3. Opgeslagen T-SQL-procedure die meerdere id-waarden accepteert

  4. CSV importeren naar MySQL