Wiele razy będziesz musiał porównać sprzedaż produktów według miesiąca, side-by-side, aby określić, jak sobie radzą. Oto zapytanie SQL do porównania sprzedaży produktów według miesiąca, jeśli Twoje dane są przechowywane w bazach danych MySQL/PostgreSQL/SQL Server.
Zapytanie SQL do porównania sprzedaży produktów według miesiąca
Załóżmy, że masz tabelę sprzedaż(data_zamówienia, produkt, wyprzedaż) który zawiera dzienną sprzedaż wszystkich Twoich produktów.
mysql> create table sales(product varchar(255),order_date date,sale int); mysql> insert into sales values('Pen','2020-01-01',20),('Paper','2020-01-02',25), ('Paper','2020-01-03',15),('Pen','2020-01-04',30),('Paper','2020-01-05',20) ...; mysql> select * from sales; +---------+------------+------+ | product | order_date | sale | +---------+------------+------+ | Pen | 2020-01-01 | 20 | | Paper | 2020-01-02 | 25 | | Paper | 2020-01-03 | 15 | | Pen | 2020-01-04 | 30 | | Pen | 2020-01-05 | 20 | | ... | ... | ...| +---------+------------+------+
SQL Query do porównania sprzedaży produktów według miesiąca
W większości przypadków będziesz mieć wiersze sprzedaży dla wszystkich produktów jeden pod drugim, w osobnych wierszach zamiast w osobnych kolumnach. Jeśli chcesz porównać sprzedaż produktów według miesiąca, musisz przestawić te dane według produktu kolumna.
Oto zapytanie umożliwiające przestawienie tabeli sprzedaży według produktu kolumna. Przyjrzymy się temu szczegółowo
mysql> SELECT date_format(order_date,'%b-%y') as order_date, sum(IF(product='Pen', sale, NULL)) AS Pen, sum(IF(product='Paper', sale, NULL)) AS Paper FROM sales GROUP BY year(order_date),month(order_date),date_format(order_date,'%b-%y') ; +------------+------+-------+ | order_date | Pen | Paper | +------------+------+-------+ | Jan-20 | 200 | 320 | | Feb-20 | 250 | 220 | | Mar-20 | 230 | 290 | | Apr-20 | 190 | 210 | | May-20 | 210 | 230 | | Jun-20 | 320 | 120 | | Jul-20 | 330 | 220 | | Aug-20 | 210 | 260 | | Sep-20 | 120 | 220 | | Oct-20 | 280 | 120 | | Nov-20 | 290 | 280 | | Dec-20 | 200 | 320 | +------------+------+-------+
W powyższym zapytaniu używamy funkcji DATE_FORMAT, aby uzyskać nazwy miesięcy z data_zamówienia kolumna. Dalej używamy wyrażenia IF aby utworzyć tabelę przestawną według produktu kolumna. W takim przypadku, dla każdego wiersza, instrukcja IF sprawdzi wartość kolumny produktu i doda wartość sprzedaży do kolumny oznaczonej „Pióro” lub „Papier” w zależności od nazwy produktu. Możemy również GRUPOWAĆ WEDŁUG nazwy miesiąca, aby uzyskać miesięczną sprzedaż produktów z codziennych zamówień.
Po obliczeniu miesięcznej sprzedaży na produkt możesz użyć narzędzia do tworzenia wykresów, aby wykreślić go na wykresie liniowym, jak pokazano poniżej. Oto przykład wykresu liniowego utworzonego za pomocą Ubiq.
Czy wiesz, że możesz tworzyć tabele przestawne w Ubiq za pomocą przeciągania i upuszczania?
Jeśli chcesz tworzyć wykresy, dashboardy i raporty z bazy danych MySQL/PostgreSQL/SQL Server, możesz wypróbować Ubiq. Oferujemy 14-dniowy bezpłatny okres próbny.