Database
 sql >> база данни >  >> RDS >> Database

SQL заявка за сравняване на продажбите на продукти по месеци

Много пъти ще трябва да сравнявате продажбите на продукти по месеци, рамо до рамо, за да определите как се справят. Ето SQL заявка за сравняване на продажбите на продукти по месеци, ако данните ви се съхраняват в MySQL/PostgreSQL/SQL Server бази данни.

SQL заявка за сравняване на продажбите на продукти по месеци

Да приемем, че имате таблица sales(order_date, product, sale) който съдържа ежедневни продажби на всички ваши продукти.

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 заявка за сравняване на продажбите на продукти по месеци

В повечето случаи ще имате редове за продажби за всичките си продукти един под друг, в отделни редове, вместо отделни колони. Ако искате да сравните продажбите на продукти по месеци, трябва да завъртите тези данни по продукт колона.

Ето заявката за завъртане на вашата таблица за продажби по продукт колона. Ще го разгледаме подробно

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 |
+------------+------+-------+

В горната заявка използваме функция DATE_FORMAT , за да получим имена на месеци от order_date колона. Освен това използваме IF оператор за създаване на обобщена таблица по продукт колона. В този случай за всеки ред операторът IF ще провери стойността на колоната на продукта и ще добави стойността за продажба към колона с етикет „Химикалка“ или „Хартия“ в зависимост от името на продукта. Ние също така ГРУПИРАМЕ ПО име на месец, за да получаваме месечни продажби на продукти от ежедневни поръчки.

След като изчислите месечните продажби на продукт, можете да използвате инструмент за диаграми, за да го начертаете на линейна диаграма, както е показано по-долу. Ето пример за  линейна диаграма, създадена с Ubiq.

Знаете ли, че можете да създавате централни таблици в Ubiq, като използвате просто плъзгане и пускане?

Ако искате да създавате диаграми, табла и отчети от MySQL/PostgreSQL/SQL Server база данни, можете да опитате Ubiq. Предлагаме 14-дневен безплатен пробен период.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Въведение в статистиката за чакане

  2. Как да се присъедините към множество (3+) таблици в едно изявление

  3. T-SQL срещу SQL

  4. Използване на Trace Flag 3226 за потискане на регистрирането на архивиране на регистрационни файлове

  5. Каква е употребата на функцията DECODE в SQL?