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

So berechnen Sie das prozentuale Wachstum Woche für Woche in MySQL

Die wöchentliche Überwachung des prozentualen Wachstums ist eine nützliche Methode, um wöchentliche Wachstumstrends in Ihrem Unternehmen zu verfolgen. So berechnen Sie das prozentuale Wachstum Woche für Woche in MySQL. Es kann verwendet werden, um wöchentliche Änderungen in SQL für jede Metrik zu berechnen.

So berechnen Sie das prozentuale Wachstum Woche für Woche in MySQL

Hier sind die Schritte zur Berechnung des prozentualen Wachstums von Woche zu Woche in MySQL. Angenommen, Sie haben eine Tabelle „weekend_sales(week,sale)“, die wöchentliche Verkaufszahlen enthält, wie unten gezeigt.

mysql> create table weekly_sales(week int, sale int);

mysql> insert into weekly_sales(week,sale) 
       values(1,20),(2,30),(3,25),(4,45),(5,25);

mysql> select * from weekly_sales;
+------+------+
| week | sale |
+------+------+
|    1 |   20 |
|    2 |   30 |
|    3 |   25 |
|    4 |   45 |
|    5 |   25 |
+------+------+

Sie können das prozentuale Wachstum Woche für Woche berechnen, indem Sie die folgende SQL-Abfrage für das prozentuale Wachstum verwenden.

mysql> select week, sale,
         if(@last_entry = 0, 0, round(((sale - @last_entry) / @last_entry) * 100,2)) "growth rate",
         @last_entry := sale
         from
         (select @last_entry := 0) x,
         (select week, sum(sale) sale
         from   weekly_sales
         group by week) y;
+------+------+-------------+---------------------+
| week | sale | growth rate | @last_entry := sale |
+------+------+-------------+---------------------+
|    1 |   20 |           0 |                  20 |
|    2 |   30 |       50.00 |                  30 |
|    3 |   25 |      -16.67 |                  25 |
|    4 |   45 |       80.00 |                  45 |
|    5 |   25 |      -44.44 |                  25 |
+------+------+-------------+---------------------+

In der obigen Abfrage speichern wir für jede Woche die Daten der Vorwoche in einer temporären Variablen namens last_entry und verwenden Sie es, um das prozentuale Wachstum zu berechnen.

Bonuslektüre: So berechnen Sie den Prozentsatz von zwei Spalten in MySQL

In den meisten Fällen haben Sie jedoch tägliche Verkaufsdaten anstelle von wöchentlichen Verkaufsdaten. In diesem Fall müssen Sie es also zuerst zu wöchentlichen Verkäufen aggregieren und dann die obige Abfrage verwenden, um das prozentuale Wachstum Woche für Woche zu berechnen.

Angenommen, Sie haben eine tägliche Verkaufsdatentabelle sales(order_date, sale)

mysql>create table sales(order_date date,sale int);

mysql>insert into sales(order_date,sale)
values('2020-01-01',10),('2020-01-02',12),('2020-01-03',15),
('2020-01-04',11),('2020-01-05',13),('2020-01-06',9),
('2020-01-07',21),('2020-01-08',10),('2020-01-09',10),
('2020-01-10',2),('2020-01-11',16),('2020-01-12',12),
('2020-01-13',10),('2020-01-14',18),('2020-01-15',15),
('2020-01-16',12),('2020-01-17',10),('2020-01-18',18),
('2020-01-19',14),('2020-01-20',16),('2020-01-21',12),
('2020-01-22',21),('2020-01-23',13),('2020-01-24',15),
('2020-01-25',20),('2020-01-26',14),('2020-01-27',16),
('2020-01-28',15),('2020-01-29',10),('2020-01-30',18);

mysql>select * from sales;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-01-01 |   10 |
| 2020-01-02 |   12 |
| 2020-01-03 |   15 |
| 2020-01-04 |   11 |
| 2020-01-05 |   13 |
| 2020-01-06 |    9 |
| 2020-01-07 |   21 |
| 2020-01-08 |   10 |
| 2020-01-09 |   10 |
| ...        |   ...|
+------------+------+

Angenommen, Sie möchten das prozentuale Wachstum Woche für Woche berechnen. Hier ist die SQL für die prozentuale Veränderung im Laufe der Zeit.

mysql> select week, sale,
            if(@last_entry = 0, 0, round(((sale - @last_entry) / @last_entry) * 100,2)) "growth rate",
            @last_entry := sale
     from
           (select @last_entry := 0) x,
           (select week, sum(sale) sale
            from   (select week(order_date) as week,sum(sale) as sale
                    from sales group by week(order_date)) weekly_sales
            group by week) y;
+------+------+-------------+---------------------+
| week | sale | growth rate | @last_entry := sale |
+------+------+-------------+---------------------+
|    0 |   48 |           0 |                  48 |
|    1 |   81 |       68.75 |                  81 |
|    2 |   95 |       17.28 |                  95 |
|    3 |  111 |       16.84 |                 111 |
|    4 |   73 |      -34.23 |                  73 |
+------+------+-------------+---------------------+

In der obigen Abfrage aggregieren wir zunächst tägliche Verkäufe zu wöchentlichen Verkäufen (fett ) und verwenden Sie dann die frühere Abfrage, um das prozentuale Wachstum Woche für Woche zu berechnen.

Bonuslektüre: So berechnen Sie den Prozentsatz einer Spalte in MySQL

Wenn Sie die für Ihre Abfrage verwendeten Daten filtern möchten, können Sie Ihrer Abfrage wie unten gezeigt eine WHERE-Klausel hinzufügen

mysql> select week, sale,
            if(@last_entry = 0, 0, round(((sale - @last_entry) / @last_entry) * 100,2)) "growth rate",
            @last_entry := sale
     from
           (select @last_entry := 0) x,
           (select week, sum(sale) sale
            from   (select week(order_date) as week,sum(sale) as sale
                    from sales 
                    WHERE condition
                    group by week(order_date)) weekly_sales
            group by week) y;

Bitte beachten Sie, dass die Berechnung des prozentualen Wachstums von Woche zu Woche davon abhängt, dass der Wert der vorherigen Zeile in einer temporären Variablen gespeichert wird. Stellen Sie bitte sicher, dass Ihre Tabelle bereits in aufsteigender Reihenfolge der Wochennummern sortiert ist. Andernfalls kann es zu falschen Ergebnissen kommen.

Nachdem Sie das prozentuale Wachstum Woche für Woche berechnet haben, können Sie das Ergebnis mit einem Diagrammtool in einem Balkendiagramm darstellen und mit Ihrem Team teilen. Hier ist ein Beispiel für ein Balkendiagramm, das die prozentuale Veränderung im Laufe der Zeit zeigt und mit Ubiq erstellt wurde.

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.