sql >> Base de Datos >  >> RDS >> Mysql

Consulta MySQL para obtener los productos más vendidos

Es importante obtener productos de mayor venta, si tiene una tienda en línea o un negocio de comercio electrónico. Dado que la mayoría de los sitios web en línea se ejecutan en MySQL, en este artículo analizaremos MySQL Query para obtener los productos más vendidos para su empresa. Es muy útil para comprender qué productos funcionan bien y cuáles necesitan un empujón. Puede usar estas consultas para obtener los productos más vendidos u obtener una lista de los artículos más vendidos en su sitio.


Consulta MySQL para obtener los productos más vendidos

Veremos dos casos:primero, cuando la información de su producto y la información de ventas están en la misma tabla. En segundo lugar, cuando su producto y la información de ventas están en tablas diferentes.


Cómo obtener los productos más vendidos

Digamos que tiene una tabla ventas (id, producto, fecha_pedido, cantidad) que contiene información de producto y monto de venta en una sola tabla.

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

Obtendremos el producto más vendido por ventas y por volumen.

Lectura adicional:Cómo obtener varios recuentos en MySQL


Productos más vendidos por ventas totales

Aquí está la consulta SQL para obtener los productos más vendidos por ventas totales. En nuestro caso, seleccionaremos los 3 productos más vendidos por monto total de ventas.

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

Veamos la consulta anterior en detalle. Básicamente AGRUPAMOS POR producto columna y cantidad agregada columna usando la función SUMA.

Además, ORDENAMOS POR suma (cantidad) en orden descendente para que los productos más vendidos se enumeren en la parte superior. También usamos la cláusula LIMIT 3 para seleccionar solo las 3 primeras filas del resultado.


Productos más vendidos por volumen total

Esta es la consulta SQL para obtener los productos más vendidos por volumen total, es decir, el recuento de ventas.

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


Ahora, veremos el segundo caso. A veces, la información de productos y ventas está presente en diferentes tablas.

Digamos que tiene dos tablas producto(id, nombre_producto) y ventas(id, product_id, order_date, cantidad)

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

Lectura adicional:Cómo usar COALESCE en MySQL


Productos más vendidos por ventas totales

Aquí está la consulta SQL para obtener los productos más vendidos por ventas totales. Básicamente uniremos las dos tablas para obtener el nombre del producto y las ventas totales en el resultado de la 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 |
 +--------------+-------------+

Veamos la consulta anterior en detalle. SELECCIONAMOS product_name y suma(cantidad) columnas de producto y ventas mesas. Unimos las dos tablas usando product_id columna de ventas tabla e id columna de producto tabla, GROUP BY producto columna y cantidad agregada columna usando la función SUMA.

Además, ORDENAMOS POR suma (cantidad) en orden descendente para que los productos más vendidos se enumeren en la parte superior. También usamos la cláusula LIMIT 3 para seleccionar solo las 3 primeras filas del resultado.

Lectura adicional:Cómo consultar la columna JSON en MySQL


Productos más vendidos por volumen total

Esta es la consulta SQL para obtener los productos más vendidos por volumen total, es decir, el recuento de ventas.

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


Consigue los productos más vendidos con Ubiq

La herramienta Ubiq Reporting admite todas las consultas SQL anteriores y facilita la visualización de los resultados SQL de diferentes maneras. También le permite crear paneles y gráficos a partir de datos de MySQL. Aquí está la consulta SQL para obtener los productos más vendidos en Ubiq.

De hecho, después de ejecutar la consulta, simplemente puede hacer clic en un tipo de visualización para trazar el resultado en un gráfico.

¿Necesita una herramienta de informes para MySQL? Ubiq facilita la visualización de datos en minutos y el monitoreo en paneles en tiempo real. ¡Pruébalo hoy!