Mysql
 sql >> Base de données >  >> RDS >> Mysql

Requête MySQL pour obtenir les produits les plus vendus

Il est important d'obtenir les produits les plus vendus si vous exploitez une boutique en ligne ou une entreprise de commerce électronique. Étant donné que la plupart des sites Web en ligne fonctionnent sur MySQL, dans cet article, nous examinerons MySQL Query pour obtenir les produits les plus vendus pour votre entreprise. C est très utile pour comprendre quels produits fonctionnent bien et lesquels ont besoin d un coup de pouce. Vous pouvez utiliser ces requêtes pour obtenir les produits les plus vendus ou obtenir une liste des articles les plus vendus sur votre site.


Requête MySQL pour obtenir les produits les plus vendus

Nous examinerons deux cas - d'abord, lorsque vos informations sur les produits et les informations sur les ventes se trouvent dans le même tableau. Deuxièmement, lorsque vos informations sur les produits et les ventes se trouvent dans des tableaux différents.


Comment obtenir les produits les plus vendus

Disons que vous avez une table ventes(id, produit, date_commande, montant) qui contient des informations sur le produit et le montant de la vente dans un seul tableau.

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

Nous obtiendrons les produits les plus vendus en termes de ventes et de volume.

Lecture bonus :comment obtenir plusieurs comptes dans MySQL


Produits les plus vendus par ventes totales

Voici la requête SQL pour obtenir les produits les plus vendus en fonction des ventes totales. Dans notre cas, nous sélectionnerons les 3 produits les plus vendus en fonction du montant total des ventes.

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

Examinons en détail la requête ci-dessus. En gros, nous REGROUPONS PAR produit colonne et montant agrégé colonne à l'aide de la fonction SOMME.

Nous commandons ensuite la somme (montant) par ordre décroissant afin que les produits les plus vendus soient répertoriés en haut. Nous utilisons également la clause LIMIT 3 pour sélectionner uniquement les 3 premières lignes de résultat.


Produits les plus vendus par volume total

Voici la requête SQL pour obtenir les produits les plus vendus par volume total, c'est-à-dire le nombre de ventes.

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


Maintenant, nous allons examiner le deuxième cas. Parfois, les informations sur les produits et les ventes sont présentes dans des tableaux différents.

Disons que vous avez deux tables product(id, product_name) et ventes (id, product_id, order_date, montant)

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

Lecture bonus :Comment utiliser COALESCE dans MySQL


Produits les plus vendus par ventes totales

Voici la requête SQL pour obtenir les produits les plus vendus en fonction des ventes totales. Nous allons essentiellement joindre les deux tables pour obtenir le nom du produit et les ventes totales dans le résultat de la requête.

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

Examinons en détail la requête ci-dessus. Nous SÉLECTIONNONS product_name et somme (montant) colonnes de produit et ventes les tables. Nous joignons les deux tables en utilisant product_id colonne de ventes table et id colonne de produit table, GROUP BY produit colonne et montant agrégé colonne à l'aide de la fonction SOMME.

Nous commandons ensuite la somme (montant) par ordre décroissant afin que les produits les plus vendus soient répertoriés en haut. Nous utilisons également la clause LIMIT 3 pour sélectionner uniquement les 3 premières lignes de résultat.

Lecture bonus :Comment interroger la colonne JSON dans MySQL


Produits les plus vendus en volume total

Voici la requête SQL pour obtenir les produits les plus vendus en volume total, c'est-à-dire le nombre de ventes.

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


Obtenez les produits les plus vendus avec Ubiq

L'outil Ubiq Reporting prend en charge toutes les requêtes SQL ci-dessus et facilite la visualisation des résultats SQL de différentes manières. Il vous permet également de créer des tableaux de bord et des graphiques à partir de données MySQL. Voici la requête SQL pour obtenir les produits les plus vendus, dans Ubiq.

En fait, après avoir exécuté la requête, vous pouvez simplement cliquer sur un type de visualisation pour tracer le résultat dans un graphique.

Besoin d'un outil de reporting pour MySQL ? Ubiq permet de visualiser facilement les données en quelques minutes et de les surveiller dans des tableaux de bord en temps réel. Essayez-le aujourd'hui !