Месечният растеж е ключов показател за ефективността на всеки бизнес. Тъй като няма функция за изчисляване на процентен растеж месец по месец в MySQL, трябва да напишете SQL заявка, за да изчислите промяната от месец по месец. Така че нека видим как да изчислим процентния растеж месец по месец в MySQL. Можете също така да го използвате, за да наблюдавате процентната промяна от месец след месец във вашия бизнес.
Как да изчислим процентния растеж месец по месец в MySQL
Да приемем, че имате таблица с данни month_sales(month,sale), която съдържа месечни продажби, както е показано по-долу.
mysql> create table monthly_sales(month int,sale int); mysql> insert into monthly_sales(month,sale) values(1,20), (2,30),(3,25),(4,45),(5,25); mysql> select * from monthly_sales; +-------+------+ | month | sale | +-------+------+ | 1 | 20 | | 2 | 30 | | 3 | 25 | | 4 | 45 | | 5 | 25 | +-------+------+
Можете да изчислите процентния растеж месец по месец, като използвате следния SQL.
mysql> select month, 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 month, sum(sale) sale from monthly_sales group by month) y; +-------+------+-------------+---------------------+ | month | 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 | +-------+------+-------------+---------------------+
В горната заявка за всеки ред (месец) съхраняваме продажбата от предходния месец във временна променлива last_entry
Въпреки това, в повечето случаи ще имате ежедневни данни за продажбите. В този случай първо трябва да го обобщите към месечните продажби и след това да изчислите процентния темп на растеж месец по месец. Да приемем, че имате таблица с данни за продажби (created_at, sale), която съдържа информация за ежедневните продажби.
mysql> create table sales(order_date date,sale int); mysql> insert into sales values('2020-01-01',20), ('2020-01-02',25),('2020-01-03',15),('2020-01-04',30), ('2020-02-05',20),('2020-02-10',20),('2020-02-06',25), ('2020-03-07',15),('2020-03-08',30),('2020-03-09',20); mysql> select * from sales; +------------+------+ | order_date | sale | +------------+------+ | 2020-01-01 | 20 | | 2020-01-02 | 25 | | 2020-01-03 | 15 | | 2020-01-04 | 30 | | 2020-02-05 | 20 | | 2020-02-10 | 20 | | 2020-02-06 | 25 | | 2020-03-07 | 15 | | 2020-03-08 | 30 | | 2020-03-09 | 20 | +------------+------+
Да приемем, че искате да изчислите месечния темп на растеж, ето SQL заявката за него.
mysql> select month, 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 month, sum(sale) sale from (select month(order_date) as month,sum(sale) as sale from sales group by month(order_date)) monthly_sales group by month) y; +-------+------+-------------+---------------------+ | month | sale | growth rate | @last_entry := sale | +-------+------+-------------+---------------------+ | 1 | 90 | 0 | 90 | | 2 | 65 | -27.78 | 65 | | 3 | 65 | 0.00 | 65 | +-------+------+-------------+---------------------+
В горната заявка първо обобщаваме дневните продажби в месечни стойности (показани удебелен ) и след това използвайте по-ранната заявка, за да изчислите процентен растеж.
Бонус за четене: Как да изчислим средните продажби на ден в MySQL
Ако искате да филтрирате данните си, преди да изчислите процентния растеж месец по месец, можете да направите това, като добавите клауза WHERE към заявката си, както е показано по-долу
mysql> select month, 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 month, sum(sale) sale from (select month(order_date) as month,sum(sale) as sale from sales WHERE condition group by month(order_date)) monthly_sales group by month) y;
Бонус четене: Как да изчислим общите продажби на месец в MySQL?
Моля, обърнете внимание :Тъй като изчисляването на процентния растеж месец по месец се основава на концепцията за съхраняване на стойността на предишния ред във временна променлива, уверете се, че вашата таблица е сортирана във възходящ ред на месеца (например 1,2,3 и т.н. или 202001,202002 ,202003 и др.). В противен случай данните ви може да се сортират по азбучен ред и да дадат грешни резултати, когато изчислявате процентния растеж месец по месец в MySQL.
Можете да използвате инструмент за отчитане, за да начертаете тези данни на лента или табло за управление и да ги споделите с вашия екип. Ето пример за лентова диаграма, която показва процентен ръст на продажбите от месец на месец, създадена с Ubiq.
Ако искате да създавате диаграми, табла за управление и отчети от MySQL база данни, можете да опитате Ubiq. Предлагаме 14-дневен безплатен пробен период.