Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So erhalten Sie die kumulative Gesamtzahl der Benutzer pro Tag in MySQL

Die tägliche kumulierte Gesamtzahl der Benutzer ist eine sehr nützliche KPI-Metrik zur Analyse des Benutzerwachstums für jedes Unternehmen. Da es jedoch keine integrierte Funktion zur Berechnung der laufenden Summe in MySQL gibt, ist hier die SQL-Abfrage, um die kumulierte Gesamtzahl der Benutzer pro Tag zu erhalten, auch bekannt als fortlaufende Summe nach Datum oder laufende Summe der Benutzer.

So erhalten Sie die kumulierte Gesamtzahl der Benutzer pro Tag in MySQL

Hier sind die Schritte, um die kumulative Gesamtzahl der Benutzer pro Tag in MySQL zu erhalten. Angenommen, Sie haben die folgende Tabelle users(date_joined,user_id) die alle Benutzer-IDs mit ihrem Registrierungs-/Registrierungs-/Beitrittsdatum für Ihr Unternehmen enthält.

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

Zuerst sehen wir uns eine SQL-Abfrage an, um die tägliche Anzahl der Anmeldungen zu berechnen

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

Als nächstes ist hier die SQL-Abfrage, um die kumulative Gesamtzahl der Benutzer pro Tag in MySQL zu erhalten. Wir werden die obige SQL als Unterabfrage verwenden, um die laufende Summe in SQL zu erhalten.

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 der obigen Abfrage setzen wir eine temporäre Variable csum auf 0. Dann verwenden wir sie für jede Zeile, um die kumulative Summe der Benutzer zu berechnen und zu speichern.

Nachdem Sie die kumulative Gesamtzahl der Benutzer pro Tag in MySQL erhalten haben, können Sie sie mit einem Berichtstool wie Ubiq in einem Liniendiagramm oder Dashboard darstellen und mit Ihrem Team teilen. Hier ist ein Liniendiagramm, das mit Ubiq erstellt wurde.

Wenn Sie in MySQL eine bedingte laufende Summe erhalten möchten, können Sie je nach Anforderung eine WHERE-Klausel in die Unterabfrage einfügen.

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;

Sie können die obige SQL-Abfrage einfach ändern, um die kumulierte Gesamtzahl der Benutzer nach Woche, Monat, Quartal und Jahr zu berechnen. Schauen wir sie uns nacheinander an. Wir werden die DATE_FORMAT-Funktion verwenden, um Woche und Monat einfach aus Datumsspalten abzurufen.

Bonuslektüre:So berechnen Sie Einnahmen in MySQL

So erhalten Sie die kumulierte Gesamtzahl der Benutzer pro Woche in MySQL

Hier ist die SQL-Abfrage, um die kumulative Gesamtzahl der Benutzer pro Woche in MySQL zu erhalten. In der SQL-Abfrage zum Abrufen der kumulativen Gesamtzahl der Benutzer pro Tag müssen Sie nur die Aggregationsfunktion in der Unterabfrage von date(date_joined) ändern zu 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 der obigen Abfrage können Sie auch die WEEK-Funktion anstelle von DATE_FORMAT verwenden, d. h., verwenden Sie WEEK(date_joined) anstelle von DATE_FORMAT(date_joined,’%U’)

Bonus-Lesung:So erhalten Sie Aufzeichnungen des aktuellen Monats in MySQL

So erhalten Sie die kumulierte Gesamtzahl der Benutzer pro Monat in MySQL

Hier ist die SQL-Abfrage, um die kumulierten Gesamtbenutzer pro Monat in MySQL zu erhalten. In der SQL-Abfrage zum Abrufen der kumulativen Gesamtzahl der Benutzer pro Tag müssen Sie nur die Aggregationsfunktion in der Unterabfrage von date(date_joined) ändern zu 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;

Bonuslektüre:So erhalten Sie die Verkaufsdaten der letzten 3 Monate in MySQL

So erhalten Sie die kumulierte Gesamtzahl der Benutzer pro Quartal in MySQL

Hier ist die SQL-Abfrage, um die kumulierten Gesamtbenutzer pro Quartal in MySQL zu erhalten. In der SQL-Abfrage zum Abrufen der kumulativen Gesamtzahl der Benutzer pro Tag müssen Sie nur die Aggregationsfunktion in der Unterabfrage von date(date_joined) ändern bis Quartal(Datumsformat) .

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;

So erhalten Sie die kumulierte Gesamtzahl der Benutzer pro Jahr in MySQL

Hier ist die SQL-Abfrage, um die kumulative Gesamtzahl der Benutzer nach Jahr in MySQL zu erhalten. In der SQL-Abfrage zum Abrufen der kumulativen Gesamtzahl der Benutzer pro Tag müssen Sie nur die Aggregationsfunktion in der Unterabfrage von date(date_joined) ändern bis Jahr(Datumsformat) .

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;

Das ist es! Sie können die obigen SQL-Abfragen ausprobieren, um die kumulierte Gesamtzahl der Benutzer pro Tag in MySQL zu erhalten. Wenn Sie Diagramme, Dashboards und Berichte aus einer MySQL-Datenbank erstellen möchten, können Sie Ubiq ausprobieren. Wir bieten eine 14-tägige kostenlose Testversion an.