sql >> Database >  >> RDS >> Mysql

MySQL-query om best verkopende producten te krijgen

Het is belangrijk om best verkopende producten te krijgen als u een online winkel of e-commercebedrijf heeft. Aangezien de meeste online websites op MySQL draaien, zullen we in dit artikel kijken naar MySQL Query om de best verkopende producten voor uw bedrijf te krijgen. Het is erg handig om te begrijpen welke producten het goed doen en welke een duwtje in de rug nodig hebben. U kunt deze zoekopdrachten gebruiken om de best verkochte producten te krijgen of om een ​​lijst met best verkochte artikelen op uw site te krijgen.


MySQL-query om bestverkopende producten te krijgen

We zullen naar twee gevallen kijken:ten eerste wanneer uw productinformatie en verkoopinformatie in dezelfde tabel staan. Ten tweede, wanneer uw product- en verkoopinformatie in verschillende tabellen staan.


Hoe u best verkopende producten kunt krijgen

Stel dat u een tabel heeft verkoop(id, product, order_date, bedrag) die informatie over het product en het verkoopbedrag in een enkele tabel bevat.

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

We krijgen het best verkopende product per verkoop en per volume.

Bonus lezen:meerdere tellingen krijgen in MySQL


Best verkopende producten op basis van totale verkoop

Hier is de SQL-query om de best verkopende producten te krijgen op basis van de totale verkoop. In ons geval selecteren we de top 3 van bestverkochte producten op basis van het totale verkoopbedrag.

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

Laten we de bovenstaande vraag in detail bekijken. We groeperen in principe OP product kolom en totaal bedrag kolom met de functie SUM.

Verder BESTELLEN we OP som (bedrag) in aflopende volgorde zodat de best verkopende producten bovenaan staan. We gebruiken ook de LIMIT 3-clausule om alleen de bovenste 3 rijen met resultaten te selecteren.


Bestverkopende producten per totaal volume

Hier is de SQL-query om de best verkopende producten te krijgen op basis van het totale volume, dat wil zeggen het aantal verkopen.

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


Nu zullen we kijken naar het tweede geval. Soms zijn product- en verkoopinformatie aanwezig in verschillende tabellen.

Stel dat u twee tabellen heeft product(id, product_name) en verkoop(id, product_id, besteldatum, bedrag)

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

Bonus lezen:COALESCE gebruiken in MySQL


Best verkopende producten op basis van totale verkoop

Hier is de SQL-query om de best verkopende producten te krijgen op basis van de totale verkoop. We voegen in principe de twee tabellen samen om de productnaam en de totale verkoop in het zoekresultaat te krijgen.

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

Laten we de bovenstaande vraag in detail bekijken. We SELECTEREN product_name en som(bedrag) kolommen van product en verkoop tafels. We voegen de twee tabellen samen met product_id kolom uit verkoop tabel en id kolom uit product tabel, GROEP OP product kolom en totaal bedrag kolom met de functie SUM.

Verder BESTELLEN we OP som (bedrag) in aflopende volgorde zodat de best verkopende producten bovenaan staan. We gebruiken ook de LIMIT 3-clausule om alleen de bovenste 3 rijen met resultaten te selecteren.

Bonus Lezen:Hoe JSON-kolom opvragen in MySQL


Best verkochte producten op totaal volume

Hier is de SQL-query om de best verkopende producten te krijgen op basis van het totale volume, dat wil zeggen het aantal verkopen.

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


Ontvang best verkopende producten met Ubiq

Ubiq Reporting-tool ondersteunt alle bovenstaande SQL-query's en maakt het gemakkelijk om SQL-resultaten op verschillende manieren te visualiseren. Hiermee kunt u ook dashboards en grafieken maken van MySQL-gegevens. Hier is de SQL-query om de best verkopende producten in Ubiq te krijgen.

Nadat u de query heeft uitgevoerd, kunt u zelfs eenvoudig op een visualisatietype klikken om het resultaat in een grafiek uit te zetten.

Een rapportagetool voor MySQL nodig? Ubiq maakt het gemakkelijk om gegevens binnen enkele minuten te visualiseren en in realtime dashboards te monitoren. Probeer het vandaag nog!

  1. MariaDB MaxScale Load Balancing op Docker:implementatie:deel één

  2. MariaDB Backup &PostgreSQL in de cloud - ClusterControl Release 1.6.1

  3. SQLite Self-Join

  4. best practices voor mysqldump:deel 1 – MySQL-vereisten