Database
 sql >> Baza danych >  >> RDS >> Database

Zapytanie SQL do porównania sprzedaży produktów według miesiąca

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.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak połączyć bazę danych z Amazon VPC

  2. Brudne tajemnice wyrażenia CASE

  3. Naucz się podstawowej analizy danych za pomocą funkcji okna SQL

  4. Anonimizuj szczegóły swojego planu natywnie w Eksploratorze planów

  5. 4 gotowe metody konwersji danych SQL i przypadki użycia