Meziměsíční růst je klíčovým ukazatelem výkonnosti každého podniku. Vzhledem k tomu, že v MySQL neexistuje žádná funkce pro výpočet procentuálního růstu měsíc po měsíci, musíte napsat dotaz SQL pro výpočet změny mezi měsíci. Podívejme se tedy, jak vypočítat procentní růst měsíčně po měsíci v MySQL. Můžete jej také použít ke sledování měsíčních procentuálních změn v průběhu času ve vaší firmě.
Jak vypočítat procentuální růst po měsíci v MySQL
Řekněme, že máte datovou tabulku měsíc_prodej (měsíc,prodej), která obsahuje měsíční tržby, jak je uvedeno níže.
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 | +-------+------+
Procentuální růst měsíc po měsíci můžete vypočítat pomocí následujícího 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 | +-------+------+-------------+---------------------+
Ve výše uvedeném dotazu pro každý řádek (měsíc) ukládáme prodej z předchozího měsíce do dočasné proměnné last_entry
Ve většině případů však budete mít k dispozici denní údaje o prodeji. V takovém případě je musíte nejprve agregovat do měsíčních prodejů a poté vypočítat procentuální míru růstu měsíc po měsíci. Řekněme, že máte datovou tabulku sales(created_at, sale), která obsahuje informace o denním prodeji.
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 | +------------+------+
Řekněme, že chcete vypočítat měsíční tempo růstu, zde je pro to dotaz 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 | +-------+------+-------------+---------------------+
Ve výše uvedeném dotazu nejprve agregujeme denní tržby do měsíčních hodnot (zobrazeno tučně ) a poté použijte dřívější dotaz k výpočtu procentuálního růstu.
Bonusové čtení: Jak vypočítat průměrný prodej za den v MySQL
Pokud chcete před výpočtem procentuálního růstu měsíc po měsíci filtrovat svá data, můžete to udělat přidáním klauzule WHERE do svého dotazu, jak je uvedeno níže
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;
Bonusové čtení: Jak vypočítat celkový prodej za měsíc v MySQL?
Poznámka :Vzhledem k tomu, že výpočet procentuálního růstu měsíc po měsíci je založen na konceptu ukládání hodnoty předchozího řádku do dočasné proměnné, ujistěte se, že je tabulka seřazena vzestupně podle měsíce (např. 1,2,3 atd. nebo 202001,202002 ,202003 atd.). Jinak by se vaše data mohla třídit abecedně a poskytovat špatné výsledky, když v MySQL počítáte měsíční růst v procentech.
Pomocí nástroje pro vytváření sestav můžete tato data vykreslit na sloupcový graf nebo řídicí panel a sdílet je se svým týmem. Zde je příklad sloupcového grafu, který ukazuje meziměsíční růst prodeje v procentech, vytvořený pomocí Ubiq.
Pokud chcete vytvářet grafy, dashboardy a sestavy z databáze MySQL, můžete zkusit Ubiq. Nabízíme 14denní bezplatnou zkušební verzi.