Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Consulta MySQL para obter os produtos mais vendidos


É importante obter os produtos mais vendidos, se você administra uma loja online ou uma empresa de comércio eletrônico. Como a maioria dos sites on-line são executados no MySQL, neste artigo, analisaremos o MySQL Query para obter os produtos mais vendidos para o seu negócio. É muito útil para entender quais produtos estão indo bem e quais precisam de um empurrão. Você pode usar essas consultas para obter os produtos mais vendidos ou obter uma lista dos itens mais vendidos em seu site.



Consulta MySQL para obter os produtos mais vendidos


Veremos dois casos – primeiro, quando as informações do produto e as informações de vendas estão na mesma tabela. Segundo, quando suas informações de produto e vendas estão em tabelas diferentes.



Como obter os produtos mais vendidos


Digamos que você tenha uma tabela vendas(id, product, order_date, amount) que contém informações de produto e valor de venda em uma única tabela.
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 |
+------+---------+------------+--------+

Obteremos o produto mais vendido por vendas e por volume.

Bônus de leitura:Como obter várias contagens no MySQL



Produtos mais vendidos por vendas totais


Aqui está a consulta SQL para obter os produtos mais vendidos por vendas totais. No nosso caso, selecionaremos os 3 produtos mais vendidos pelo valor total das vendas.
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 |
 +---------+-------------+

Vejamos a consulta acima em detalhes. Basicamente, AGRUPAMOS POR produto coluna e quantidade agregada coluna usando a função SOMA.

Além disso, ORDER BY soma (quantidade) em ordem decrescente para que os produtos mais vendidos sejam listados no topo. Também usamos a cláusula LIMIT 3 para selecionar apenas as 3 primeiras linhas do resultado.



Produtos mais vendidos por volume total


Aqui está a consulta SQL para obter os produtos mais vendidos por volume total, ou seja, contagem de vendas.
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 |
 +---------+---------------+




Agora, veremos o segundo caso. Às vezes, as informações de produtos e vendas estão presentes em tabelas diferentes.

Digamos que você tenha duas tabelas product(id, product_name) e vendas(id, product_id, order_date, valor)
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 |
 +------+------------+------------+--------+

Bônus de leitura:Como usar COALESCE no MySQL



Produtos mais vendidos por vendas totais


Aqui está a consulta SQL para obter os produtos mais vendidos por vendas totais. Vamos basicamente juntar as duas tabelas para obter o nome do produto e o total de vendas no resultado da consulta.
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 |
 +--------------+-------------+

Vejamos a consulta acima em detalhes. SELECIONAMOS product_name e soma(valor) colunas de produto e vendas mesas. Unimos as duas tabelas usando product_id coluna de vendas tabela e id coluna de produto tabela, GROUP BY produto coluna e quantidade agregada coluna usando a função SOMA.

Além disso, ORDER BY soma (quantidade) em ordem decrescente para que os produtos mais vendidos sejam listados no topo. Também usamos a cláusula LIMIT 3 para selecionar apenas as 3 primeiras linhas do resultado.

Bônus de leitura:Como consultar a coluna JSON no MySQL



Produtos mais vendidos por volume total


Aqui está a consulta SQL para obter os produtos mais vendidos por volume total, ou seja, contagem de vendas.
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 |
 +--------------+---------------+



Obtenha os produtos mais vendidos usando o Ubiq


A ferramenta Ubiq Reporting suporta todas as consultas SQL acima e facilita a visualização dos resultados SQL de diferentes maneiras. Ele também permite que você crie painéis e gráficos a partir de dados MySQL. Aqui está a consulta SQL para obter os produtos mais vendidos, na Ubiq.

Na verdade, depois de executar a consulta, você pode simplesmente clicar em um tipo de visualização para plotar o resultado em um gráfico.

Precisa de uma ferramenta de relatório para MySQL? A Ubiq facilita a visualização de dados em minutos e o monitoramento em painéis em tempo real. Experimente hoje!