Il monitoraggio della percentuale di crescita settimana dopo settimana è un modo utile per monitorare le tendenze di crescita settimanali della tua attività. Ecco come calcolare la crescita percentuale settimana dopo settimana in MySQL. Può essere utilizzato per calcolare la variazione di settimana in settimana in SQL per qualsiasi metrica.
Come calcolare la crescita percentuale settimana dopo settimana in MySQL
Ecco i passaggi per calcolare la crescita percentuale settimana dopo settimana in MySQL. Supponiamo che tu abbia una tabella vendite_settimanali(settimana,saldi) che contiene i numeri delle vendite settimanali, come mostrato di seguito.
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 | +------+------+
Puoi calcolare la crescita percentuale di settimana in settimana utilizzando la seguente query SQL per la percentuale di crescita.
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 | +------+------+-------------+---------------------+
Nella query precedente, per ogni settimana, memorizziamo i dati della settimana precedente in una variabile temporanea chiamata last_entry e usalo per calcolare la crescita percentuale.
Bonus Leggi: Come calcolare la percentuale di due colonne in MySQL
Tuttavia, nella maggior parte dei casi, avrai dati sulle vendite giornaliere anziché sulle vendite settimanali. Quindi, in tal caso, devi prima aggregarlo alle vendite settimanali e quindi utilizzare la query precedente per calcolare la crescita percentuale settimana dopo settimana.
Supponiamo che tu abbia una tabella di dati sulle vendite giornaliere 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 | | ... | ...| +------------+------+
Supponiamo che tu voglia calcolare la crescita percentuale settimana dopo settimana, ecco l'SQL per la variazione percentuale nel tempo.
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 | +------+------+-------------+---------------------+
Nella query precedente, aggreghiamo innanzitutto le vendite giornaliere in vendite settimanali (in grassetto )e quindi utilizzare la query precedente per calcolare la crescita percentuale settimana dopo settimana.
Bonus Leggi: Come calcolare la percentuale di una colonna in MySQL
Se desideri filtrare i dati utilizzati per la tua query, puoi aggiungere una clausola WHERE nella tua query come mostrato di seguito
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;
Tieni presente che, poiché il calcolo della crescita percentuale settimana su settimana dipende dalla memorizzazione del valore della riga precedente in una variabile temporanea, assicurati che la tabella sia già ordinata in ordine crescente di numeri settimanali. Altrimenti potrebbe dare risultati sbagliati.
Dopo aver calcolato la crescita percentuale settimana dopo settimana, puoi utilizzare uno strumento di creazione di grafici per tracciare il risultato in un grafico a barre e condividerlo con il tuo team. Ecco un esempio di grafico a barre che mostra la variazione percentuale nel tempo, creato utilizzando Ubiq.
Se vuoi creare grafici, dashboard e report dal database MySQL, puoi provare Ubiq. Offriamo una prova gratuita di 14 giorni.