È 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.
![](https://i0.wp.com/ubiq.co/database-blog/wp-content/uploads/2021/01/top-selling-product-ubiq.png?w=1350&ssl=1)
Infatti, dopo aver eseguito la query, puoi semplicemente fare clic su un tipo di visualizzazione per tracciare il risultato in un grafico.
![](https://i0.wp.com/ubiq.co/database-blog/wp-content/uploads/2021/01/top-selling-product-ubiq-2-3.png?w=1350&ssl=1)
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!