La croissance mensuelle est un indicateur de performance clé pour chaque entreprise. Puisqu'il n'y a pas de fonction pour calculer le pourcentage de croissance mois par mois dans MySQL, vous devez écrire une requête SQL pour calculer le changement d'un mois à l'autre. Voyons donc comment calculer le pourcentage de croissance mois par mois dans MySQL. Vous pouvez également l'utiliser pour surveiller la variation en pourcentage d'un mois sur l'autre au fil du temps dans votre entreprise.
Comment calculer le pourcentage de croissance mois par mois dans MySQL
Supposons que vous disposiez d'une table de données month_sales(month,sale) contenant les ventes mensuelles, comme indiqué ci-dessous.
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 | +-------+------+
Vous pouvez calculer le pourcentage de croissance mois par mois en utilisant le SQL suivant.
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 | +-------+------+-------------+---------------------+
Dans la requête ci-dessus, pour chaque ligne (mois), nous stockons la vente du mois précédent dans une variable temporaire last_entry
Cependant, dans la plupart des cas, vous aurez des données de ventes quotidiennes. Dans ce cas, vous devez d'abord l'agréger aux ventes mensuelles, puis calculer le taux de croissance en pourcentage mois par mois. Supposons que vous disposiez d'une table de données sales(created_at, sale) contenant des informations sur les ventes quotidiennes.
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 | +------------+------+
Supposons que vous souhaitiez calculer le taux de croissance mensuel, voici la requête SQL correspondante.
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 | +-------+------+-------------+---------------------+
Dans la requête ci-dessus, nous regroupons d'abord les ventes quotidiennes en valeurs mensuelles (affichées en gras ), puis utilisez la requête précédente pour calculer le pourcentage de croissance.
Lecture bonus : Comment calculer les ventes moyennes par jour dans MySQL
Si vous souhaitez filtrer vos données avant de calculer le pourcentage de croissance mois par mois, vous pouvez le faire en ajoutant la clause WHERE à votre requête, comme indiqué ci-dessous
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;
Lecture bonus : Comment calculer le total des ventes par mois dans MySQL ?
Veuillez noter :Étant donné que le calcul du pourcentage de croissance mois par mois est basé sur le concept de stockage de la valeur de la ligne précédente dans une variable temporaire, assurez-vous que votre tableau est trié par ordre croissant de mois (par exemple 1,2,3,etc ou 202001,202002 ,202003, etc). Sinon, vos données pourraient être triées par ordre alphabétique et donner des résultats erronés lorsque vous calculez le pourcentage de croissance mois par mois dans MySQL.
Vous pouvez utiliser un outil de création de rapports pour tracer ces données sur un graphique à barres ou un tableau de bord et les partager avec votre équipe. Voici un exemple de graphique à barres qui montre la croissance des ventes en pourcentage d'un mois sur l'autre, créé à l'aide d'Ubiq.
Si vous souhaitez créer des graphiques, des tableaux de bord et des rapports à partir de la base de données MySQL, vous pouvez essayer Ubiq. Nous offrons un essai gratuit de 14 jours.