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

MySQL заявка, за да получите най-продаваните продукти

Важно е да получавате най-продаваните продукти, ако управлявате онлайн магазин или бизнес за електронна търговия. Тъй като повечето онлайн уебсайтове работят на MySQL, в тази статия ще разгледаме MySQL Query, за да получите най-продаваните продукти за вашия бизнес. Много е полезно за разбирането кои продукти се справят добре и кои се нуждаят от тласък. Можете да използвате тези заявки, за да получите най-продаваните продукти или да получите списък с най-продаваните артикули на вашия сайт.


MySQL заявка за получаване на най-продаваните продукти

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


Как да получите най-продаваните продукти

Да кажем, че имате таблица sales(id, product, order_date, amount) която съдържа информация за продукта и сумата за продажба в една таблица.

mysql> create table sales(id int, 
        product varchar(10), 
        order_date date, 
        amount int);

mysql> insert into sales(id, product, order_date, amount)
       values(1, 'Bike','2021-01-01',150),
       (2, 'Car','2021-01-01',450),
       (3, 'Bicycle','2021-01-02',50),
       (5, 'Car','2021-01-02',450),
       (6, 'Bike','2021-01-03',150),
       (7, 'SUV','2021-01-04',850),
       (8, 'Bike','2021-01-04',150);

mysql> select * from sales;
+------+---------+------------+--------+
| id   | product | order_date | amount |
+------+---------+------------+--------+
|    1 | Bike    | 2021-01-01 |    150 |
|    2 | Car     | 2021-01-01 |    450 |
|    3 | Bicycle | 2021-01-02 |     50 |
|    5 | Car     | 2021-01-02 |    450 |
|    6 | Bike    | 2021-01-03 |    150 |
|    7 | SUV     | 2021-01-04 |    850 |
|    8 | Bike    | 2021-01-04 |    150 |
+------+---------+------------+--------+

Ще получим най-продаван продукт по продажби и по обем.

Бонус четене:Как да получите няколко броя в MySQL


Най-продавани продукти според общите продажби

Ето SQL заявката, за да получите най-продаваните продукти по общи продажби. В нашия случай ще изберем топ 3 най-продавани продукта по обща сума на продажбите.

mysql> select product, sum(amount) 
       from sales 
       group by product 
       order by sum(amount) desc 
       limit 3;
 +---------+-------------+
 | product | sum(amount) |
 +---------+-------------+
 | Car     |         900 |
 | SUV     |         850 |
 | Bike    |         450 |
 +---------+-------------+

Нека разгледаме по-подробно горната заявка. Основно ГРУПИРАМЕ ПО продукт колона и обобщена сума колона с помощта на функция SUM.

Освен това ПОРЪЧВАМЕ ПО сума(сума) в низходящ ред, така че най-продаваните продукти да са изброени най-отгоре. Също така използваме клауза LIMIT 3, за да изберем само горните 3 реда на резултата.


Най-продавани продукти по общ обем

Ето SQL заявката за получаване на най-продаваните продукти по общ обем, тоест брой на продажбите.

mysql> select product, count(amount) 
       from sales 
       group by product 
       order by count(amount) 
       desc limit 3;
 +---------+---------------+
 | product | count(amount) |
 +---------+---------------+
 | Bike    |             3 |
 | Car     |             2 |
 | Bicycle |             1 |
 +---------+---------------+


Сега ще разгледаме втория случай. Понякога информацията за продукта и продажбите присъства в различни таблици.

Да кажем, че имате две таблици product(id, product_name) и sales(id, product_id, order_date, amount)

mysql> create table product(id int,product_name varchar(10));

mysql> insert into product(id, product_name)
      value(1,'Bike'),
      (2,'Car'),
      (3,'Bicycle'),
      (4,'SUV');

mysql> select * from product;
 +------+--------------+
 | id   | product_name |
 +------+--------------+
 |    1 | Bike         |
 |    2 | Car          |
 |    3 | Bicycle      |
 |    4 | SUV          |
 +------+--------------+

mysql> create table sales(id int, 
      product_id int, 
      order_date date, 
      amount int);

mysql> insert into sales(id, product_id, order_date, amount)
      values(1, 1,'2021-01-01',150),
      (2, 2,'2021-01-01',450),
      (3, 3,'2021-01-02',50),
      (5, 2,'2021-01-02',450),
      (6, 1,'2021-01-03',150),
      (7, 4,'2021-01-04',850),
      (8, 1,'2021-01-04',150);

mysql> select * from sales;
 +------+------------+------------+--------+
 | id   | product_id | order_date | amount |
 +------+------------+------------+--------+
 |    1 |          1 | 2021-01-01 |    150 |
 |    2 |          2 | 2021-01-01 |    450 |
 |    3 |          3 | 2021-01-02 |     50 |
 |    5 |          2 | 2021-01-02 |    450 |
 |    6 |          1 | 2021-01-03 |    150 |
 |    7 |          4 | 2021-01-04 |    850 |
 |    8 |          1 | 2021-01-04 |    150 |
 +------+------------+------------+--------+

Бонус четене:Как да използвате COALESCE в MySQL


Най-продавани продукти според общите продажби

Ето SQL заявката, за да получите най-продаваните продукти по общи продажби. По принцип ще обединим двете таблици, за да получим името на продукта и общите продажби в резултата от заявката.

mysql> select product_name, sum(amount)
           from sales,product
           where sales.product_id=product.id
           group by product_name
           order by sum(amount) desc
           limit 3;
 +--------------+-------------+
 | product_name | sum(amount) |
 +--------------+-------------+
 | Car          |         900 |
 | SUV          |         850 |
 | Bike         |         450 |
 +--------------+-------------+

Нека разгледаме по-подробно горната заявка. Избираме име_на_продукт и сума(сума) колони от продукт и продажби маси. Съединяваме двете таблици с помощта на product_id колона от продажби таблица и идентификатор колона от продукт таблица, GROUP BY продукт колона и обобщена сума колона с помощта на функция SUM.

Освен това ПОРЪЧВАМЕ ПО сума(сума) в низходящ ред, така че най-продаваните продукти да са изброени най-отгоре. Също така използваме клауза LIMIT 3, за да изберем само горните 3 реда на резултата.

Бонус за четене:Как да заявя колона за JSON в MySQL


Най-продавани продукти по общ обем

Ето SQL заявката за получаване на най-продаваните продукти по общ обем, тоест брой на продажбите.

mysql> select product_name, count(amount)
           from sales,product
           where sales.product_id=product.id
           group by product_name
           order by count(amount) desc
           limit 3;
 +--------------+---------------+
 | product_name | count(amount) |
 +--------------+---------------+
 | Bike         |             3 |
 | Car          |             2 |
 | Bicycle      |             1 |
 +--------------+---------------+


Вземете най-продаваните продукти с помощта на Ubiq

Инструментът за отчитане на Ubiq поддържа всички горепосочени SQL заявки и улеснява визуализирането на SQL резултатите по различни начини. Той също така ви позволява да създавате табла за управление и диаграми от MySQL данни. Ето SQL заявката, за да получите най-продаваните продукти в Ubiq.

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

Нуждаете се от инструмент за отчитане за MySQL? Ubiq улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте го днес!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Каква е разликата между MyISAM и InnoDB?

  2. Как мога да използвам executemany, за да вмъкна в MySQL списък с речници в Python

  3. Вмъкване на обект datetime.datetime на Python в MySQL

  4. Проверете припокриването на периодите от време в MySQL

  5. Има ли недостатъци при използването на общ varchar(255) за всички текстови полета?