Wzrost z miesiąca na miesiąc jest kluczowym wskaźnikiem wydajności dla każdej firmy. Ponieważ w MySQL nie ma funkcji obliczania procentowego wzrostu z miesiąca na miesiąc, musisz napisać zapytanie SQL, aby obliczyć zmianę z miesiąca na miesiąc. Zobaczmy więc, jak obliczyć procentowy wzrost miesiąc po miesiącu w MySQL. Możesz go również użyć do monitorowania zmian procentowych z miesiąca na miesiąc w Twojej firmie.
Jak obliczyć procentowy wzrost miesiąc po miesiącu w MySQL
Załóżmy, że masz tabelę danych month_sales(miesiąc,sprzedaż), która zawiera sprzedaż miesięczną, jak pokazano poniżej.
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 | +-------+------+
Możesz obliczyć procentowy wzrost z miesiąca na miesiąc za pomocą następującego kodu 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 | +-------+------+-------------+---------------------+
W powyższym zapytaniu, dla każdego wiersza(miesiąca), przechowujemy sprzedaż z poprzedniego miesiąca w zmiennej tymczasowej last_entry
Jednak w większości przypadków będziesz mieć dzienne dane sprzedaży. W takim przypadku należy najpierw zagregować go do sprzedaży miesięcznej, a następnie obliczyć procentową stopę wzrostu z miesiąca na miesiąc. Załóżmy, że masz tabelę danych sprzedaż(utworzona_w, sprzedaż), która zawiera dzienne informacje o sprzedaży.
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 | +------------+------+
Załóżmy, że chcesz obliczyć miesięczną stopę wzrostu, oto zapytanie 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 | +-------+------+-------------+---------------------+
W powyższym zapytaniu najpierw agregujemy dzienną sprzedaż w wartości miesięczne (pokazane pogrubioną ), a następnie użyj wcześniejszego zapytania, aby obliczyć procentowy wzrost.
Przeczytaj bonus: Jak obliczyć średnią dzienną sprzedaż w MySQL
Jeśli chcesz filtrować dane przed obliczeniem procentowego wzrostu z miesiąca na miesiąc, możesz to zrobić, dodając klauzulę WHERE do zapytania, jak pokazano poniżej
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;
Przeczytaj bonus: Jak obliczyć całkowitą sprzedaż miesięczną w MySQL?
Uwaga :Ponieważ obliczanie procentowego wzrostu z miesiąca na miesiąc opiera się na koncepcji przechowywania wartości poprzedniego wiersza w zmiennej tymczasowej, upewnij się, że Twoja tabela jest posortowana w porządku rosnącym według miesiąca (np. 1,2,3 itd. lub 202001,20022) ,202003, itd.). W przeciwnym razie Twoje dane mogą zostać posortowane alfabetycznie i dać błędne wyniki podczas obliczania procentowego wzrostu z miesiąca na miesiąc w MySQL.
Możesz użyć narzędzia do raportowania, aby wykreślić te dane na wykresie słupkowym lub pulpicie nawigacyjnym i udostępnić je swojemu zespołowi. Oto przykład wykresu słupkowego, który pokazuje procentowy wzrost sprzedaży z miesiąca na miesiąc, utworzony przy użyciu Ubiq.
Jeśli chcesz tworzyć wykresy, dashboardy i raporty z bazy danych MySQL, możesz wypróbować Ubiq. Oferujemy 14-dniowy bezpłatny okres próbny.