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

MySQL Query per ottenere i prodotti più venduti

È importante ottenere i prodotti più venduti, se gestisci un negozio online o un'attività di e-commerce. Poiché la maggior parte dei siti Web online funziona su MySQL, in questo articolo esamineremo MySQL Query per ottenere i prodotti più venduti per la tua azienda. È molto utile per capire quali prodotti stanno andando bene e quali hanno bisogno di una spinta. Puoi utilizzare queste query per ottenere i prodotti più venduti o un elenco degli articoli più venduti sul tuo sito.


Query MySQL per ottenere i prodotti più venduti

Esamineremo due casi:in primo luogo, quando le informazioni sul prodotto e le informazioni sulle vendite si trovano nella stessa tabella. In secondo luogo, quando le informazioni sul prodotto e sulle vendite si trovano in tabelle diverse.


Come ottenere i prodotti più venduti

Supponiamo che tu abbia una tabella vendite(id, prodotto, data_ordine, importo) che contiene le informazioni sul prodotto e l'importo della vendita in un'unica tabella.

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

Otterremo il prodotto più venduto in base alle vendite e al volume.

Bonus Leggi:Come ottenere più conteggi in MySQL


Prodotti più venduti in base alle vendite totali

Ecco la query SQL per ottenere i prodotti più venduti in base alle vendite totali. Nel nostro caso, selezioneremo i primi 3 prodotti più venduti in base all'importo totale delle vendite.

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

Diamo un'occhiata alla domanda di cui sopra in dettaglio. Fondamentalmente GRUPPIIAMO PER prodotto colonna e importo aggregato colonna utilizzando la funzione SOMMA.

ORDINIamo inoltre PER somma (importo) in ordine decrescente in modo che i prodotti più venduti siano elencati in alto. Utilizziamo anche la clausola LIMIT 3 per selezionare solo le prime 3 righe del risultato.


Prodotti più venduti per volume totale

Ecco la query SQL per ottenere i prodotti più venduti in base al volume totale, ovvero il conteggio delle vendite.

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


Ora esamineremo il secondo caso. A volte, le informazioni sui prodotti e sulle vendite sono presenti in tabelle diverse.

Supponiamo che tu abbia due tabelle product(id, product_name) e vendite(id, product_id, order_date, importo)

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 Leggi:Come usare COALESCE in MySQL


Prodotti più venduti in base alle vendite totali

Ecco la query SQL per ottenere i prodotti più venduti in base alle vendite totali. Fondamentalmente uniremo le due tabelle per ottenere il nome del prodotto e le vendite totali nel risultato della query.

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

Diamo un'occhiata alla domanda di cui sopra in dettaglio. SELEZIONA nome_prodotto e somma(importo) colonne da prodotto e vendite tavoli. Uniamo le due tabelle usando product_id colonna da vendite tabella e id colonna da prodotto tabella, GROUP BY prodotto colonna e importo aggregato colonna utilizzando la funzione SOMMA.

ORDINIamo inoltre PER somma (importo) in ordine decrescente in modo che i prodotti più venduti siano elencati in alto. Utilizziamo anche la clausola LIMIT 3 per selezionare solo le prime 3 righe del risultato.

Bonus Lettura:come eseguire query sulla colonna JSON in MySQL


Prodotti più venduti per volume totale

Ecco la query SQL per ottenere i prodotti più venduti in base al volume totale, ovvero il conteggio delle vendite.

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


Ottieni i prodotti più venduti utilizzando Ubiq

Lo strumento Ubiq Reporting supporta tutte le query SQL di cui sopra e semplifica la visualizzazione dei risultati SQL in diversi modi. Ti consente anche di creare dashboard e grafici dai dati MySQL. Ecco la query SQL per ottenere i prodotti più venduti, in Ubiq.

Infatti, dopo aver eseguito la query, puoi semplicemente fare clic su un tipo di visualizzazione per tracciare il risultato in un grafico.

Hai bisogno di uno strumento di reporting per MySQL? Ubiq semplifica la visualizzazione dei dati in pochi minuti e il monitoraggio in dashboard in tempo reale. Provalo oggi!