sql >> Database teknologi >  >> RDS >> Mysql

MySQL-forespørgsel for at få bedst sælgende produkter

Det er vigtigt at få bedst sælgende produkter, hvis du driver en online butik eller e-handelsvirksomhed. Da de fleste online-websteder kører på MySQL, vil vi i denne artikel se på MySQL-forespørgsel for at få bedst sælgende produkter til din virksomhed. Det er meget nyttigt til at forstå, hvilke produkter der klarer sig godt, og hvilke der har brug for et skub. Du kan bruge disse forespørgsler til at få mest solgte produkter eller få en liste over bedst sælgende varer på dit websted.


MySQL-forespørgsel for at få bedst sælgende produkter

Vi vil se på to tilfælde – for det første når dine produktoplysninger og salgsoplysninger er i samme tabel. For det andet, når dine produkt- og salgsoplysninger er i forskellige tabeller.


Sådan får du bedst sælgende produkter

Lad os sige, at du har en tabel salg(id, produkt, ordre_dato, beløb) som indeholder oplysninger om produkt og salgsbeløb i en enkelt tabel.

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

Vi vil få det bedst sælgende produkt efter salg og volumen.

Bonus Læs:Sådan får du flere tællinger i MySQL


Bestsælgende produkter efter samlet salg

Her er SQL-forespørgslen for at få bedst sælgende produkter efter samlet salg. I vores tilfælde vil vi vælge top 3 bedst sælgende produkter efter samlet salgsbeløb.

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

Lad os se på ovenstående forespørgsel i detaljer. Vi GRUPPER efter produkt kolonne og samlet beløb kolonne ved hjælp af SUM-funktionen.

Vi BESTILLER yderligere EFTER sum(beløb) i faldende rækkefølge, så de bedst sælgende produkter er listet øverst. Vi bruger også LIMIT 3-klausul til kun at vælge de øverste 3 rækker af resultater.


Bestsælgende produkter efter samlet volumen

Her er SQL-forespørgslen for at få bedst sælgende produkter efter samlet volumen, det vil sige antal salg.

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 vil vi se på det andet tilfælde. Nogle gange er produkt- og salgsoplysninger til stede i forskellige tabeller.

Lad os sige, at du har to tabeller produkt(id, produktnavn) og salg(id, produkt_id, ordredato, beløb)

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

Bonuslæser:Sådan bruger du COALESCE i MySQL


Bestsælgende produkter efter samlet salg

Her er SQL-forespørgslen for at få bedst sælgende produkter efter samlet salg. Vi vil grundlæggende forbinde de to tabeller for at få produktnavn og samlet salg i forespørgselsresultatet.

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

Lad os se på ovenstående forespørgsel i detaljer. Vi VÆLGER produktnavn og sum(beløb) kolonner fra produkt og salg tabeller. Vi forbinder de to tabeller ved hjælp af product_id kolonne fra salg tabel og id kolonne fra produkt tabel, GRUPPER EFTER produkt kolonne og samlet beløb kolonne ved hjælp af SUM-funktionen.

Vi BESTILLER yderligere EFTER sum(beløb) i faldende rækkefølge, så de bedst sælgende produkter er listet øverst. Vi bruger også LIMIT 3-klausul til kun at vælge de øverste 3 rækker af resultater.

Bonus Læs:Sådan forespørges JSON-kolonnen i MySQL


Bestsælgende produkter efter samlet volumen

Her er SQL-forespørgslen for at få bedst sælgende produkter efter samlet volumen, det vil sige antal salg.

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


Få bedst sælgende produkter ved hjælp af Ubiq

Ubiq Reporting-værktøj understøtter alle ovenstående SQL-forespørgsler og gør det nemt at visualisere SQL-resultater på forskellige måder. Det giver dig også mulighed for at oprette dashboards og diagrammer fra MySQL-data. Her er SQL-forespørgslen for at få bedst sælgende produkter i Ubiq.

Faktisk, efter at du har kørt forespørgslen, kan du blot klikke på en visualiseringstype for at plotte resultatet i et diagram.

Har du brug for et rapporteringsværktøj til MySQL? Ubiq gør det nemt at visualisere data på få minutter og overvåge i dashboards i realtid. Prøv det i dag!

  1. Hvordan indsætter man en opdaterbar post med JSON-kolonne i PostgreSQL ved hjælp af JOOQ?

  2. Afrunding til 2 decimaler i SQL

  3. SÆKKER LIKE vs iLIKE

  4. Hvordan finder man ud af, hvornår en bestemt tabel blev oprettet i Oracle?