O crescimento mês a mês é um indicador-chave de desempenho para todos os negócios. Como não há função para calcular o crescimento percentual mês a mês no MySQL, você precisa escrever uma consulta SQL para calcular a mudança mês a mês. Então vamos ver como calcular o crescimento percentual mês a mês no MySQL. Você também pode usá-lo para monitorar a mudança percentual mês a mês ao longo do tempo em seu negócio.
Como calcular a porcentagem de crescimento mês a mês no MySQL
Digamos que você tenha uma tabela de dados month_sales(month,sale) que contém vendas mensais, conforme mostrado abaixo.
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 | +-------+------+
Você pode calcular o crescimento percentual mês a mês usando o SQL a seguir.
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 | +-------+------+-------------+---------------------+
Na consulta acima, para cada linha(mês), armazenamos a venda do mês anterior em uma variável temporária last_entry
No entanto, na maioria dos casos, você terá dados de vendas diários. Nesse caso, você precisa primeiro agregá-lo às vendas mensais e, em seguida, calcular a taxa de crescimento percentual mês a mês. Digamos que você tenha uma tabela de dados sales(created_at, sale) que contém informações de vendas diárias.
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 | +------------+------+
Digamos que você queira calcular a taxa de crescimento mensal, aqui está a consulta SQL para isso.
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 | +-------+------+-------------+---------------------+
Na consulta acima, primeiro agregamos as vendas diárias em valores mensais (mostrados em negrito ) e, em seguida, use a consulta anterior para calcular o crescimento percentual.
Bônus de leitura: Como calcular a média de vendas por dia no MySQL
Se você deseja filtrar seus dados antes de calcular o crescimento percentual mês a mês, pode fazer isso adicionando a cláusula WHERE à sua consulta, conforme mostrado abaixo
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;
Bônus de leitura: Como calcular o total de vendas por mês no MySQL?
Observe :Como o cálculo do crescimento percentual mês a mês é baseado no conceito de armazenar o valor da linha anterior em uma variável temporária, certifique-se de que sua tabela esteja classificada em ordem crescente de mês (por exemplo, 1,2,3, etc ou 202001,202002 , 202003, etc.). Caso contrário, seus dados podem ser classificados em ordem alfabética e fornecer resultados errados quando você calcula o crescimento percentual mês a mês no MySQL.
Você pode usar uma ferramenta de relatório para plotar esses dados em um gráfico de barras ou painel e compartilhá-los com sua equipe. Aqui está um exemplo de um gráfico de barras que mostra o crescimento percentual de vendas mês a mês, criado usando o Ubiq.
Se você deseja criar gráficos, painéis e relatórios do banco de dados MySQL, experimente o Ubiq. Oferecemos um teste gratuito de 14 dias.