Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Abfrage, um die meistverkauften Produkte zu erhalten

Es ist wichtig, meistverkaufte Produkte zu erhalten, wenn Sie einen Online-Shop oder ein E-Commerce-Geschäft betreiben. Da die meisten Online-Websites auf MySQL laufen, werden wir uns in diesem Artikel mit MySQL Query befassen, um die meistverkauften Produkte für Ihr Unternehmen zu erhalten. Es ist sehr nützlich, um zu verstehen, welche Produkte gut laufen und welche einen Schub brauchen. Sie können diese Abfragen verwenden, um die meistverkauften Produkte oder eine Liste der meistverkauften Artikel auf Ihrer Website zu erhalten.


MySQL-Abfrage, um die meistverkauften Produkte zu erhalten

Wir werden uns zwei Fälle ansehen – erstens, wenn sich Ihre Produktinformationen und Verkaufsinformationen in derselben Tabelle befinden. Zweitens, wenn sich Ihre Produkt- und Verkaufsinformationen in unterschiedlichen Tabellen befinden.


So erhalten Sie die meistverkauften Produkte

Nehmen wir an, Sie haben eine Tabelle Verkäufe (ID, Produkt, Bestelldatum, Betrag) die Informationen über das Produkt und den Verkaufsbetrag in einer einzigen Tabelle enthält.

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

Wir erhalten das meistverkaufte Produkt nach Umsatz und Volumen.

Bonus-Lesetext:So erhalten Sie mehrere Zählwerte in MySQL


Meistverkaufte Produkte nach Gesamtumsatz

Hier ist die SQL-Abfrage, um die meistverkauften Produkte nach Gesamtumsatz zu erhalten. In unserem Fall wählen wir die 3 meistverkauften Produkte nach Gesamtumsatz aus.

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

Betrachten wir die obige Abfrage im Detail. Wir GRUPPIEREN NACH Produkt Spalte und aggregierter Betrag Spalte mit SUM-Funktion.

Wir ORDER BY sum(amount) in absteigender Reihenfolge weiter, sodass die meistverkauften Produkte ganz oben aufgeführt werden. Wir verwenden auch die LIMIT 3-Klausel, um nur die obersten 3 Ergebniszeilen auszuwählen.


Meistverkaufte Produkte nach Gesamtvolumen

Hier ist die SQL-Abfrage zum Abrufen der meistverkauften Produkte nach Gesamtvolumen, d. h. Anzahl der Verkäufe.

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


Nun betrachten wir den zweiten Fall. Manchmal sind Produkt- und Verkaufsinformationen in verschiedenen Tabellen vorhanden.

Nehmen wir an, Sie haben zwei Tabellen product(id, product_name) und Verkäufe (ID, Produkt_ID, Bestelldatum, Betrag)

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

Bonuslektüre:Wie man COALESCE in MySQL verwendet


Meistverkaufte Produkte nach Gesamtumsatz

Hier ist die SQL-Abfrage, um die meistverkauften Produkte nach Gesamtumsatz zu erhalten. Wir werden im Grunde die beiden Tabellen zusammenführen, um den Produktnamen und den Gesamtumsatz im Abfrageergebnis zu erhalten.

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

Betrachten wir die obige Abfrage im Detail. Wir WÄHLEN product_name und Summe(Betrag) Spalten von Produkt und Verkäufe Tische. Wir verbinden die beiden Tabellen mit product_id Spalte von Verkäufe Tabelle und id Spalte von Produkt Tabelle, GROUP BY Produkt Spalte und aggregierter Betrag Spalte mit SUM-Funktion.

Wir ORDER BY sum(amount) in absteigender Reihenfolge weiter, sodass die meistverkauften Produkte ganz oben aufgeführt werden. Wir verwenden auch die LIMIT 3-Klausel, um nur die obersten 3 Ergebniszeilen auszuwählen.

Bonus-Lesetext:Wie man die JSON-Spalte in MySQL abfragt


Meistverkaufte Produkte nach Gesamtvolumen

Hier ist die SQL-Abfrage zum Abrufen der meistverkauften Produkte nach Gesamtvolumen, d. h. Anzahl der Verkäufe.

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


Erhalte Top-Seller-Produkte mit Ubiq

Das Ubiq Reporting Tool unterstützt alle oben genannten SQL-Abfragen und macht es einfach, SQL-Ergebnisse auf unterschiedliche Weise zu visualisieren. Es ermöglicht Ihnen auch, Dashboards und Diagramme aus MySQL-Daten zu erstellen. Hier ist die SQL-Abfrage, um die meistverkauften Produkte in Ubiq abzurufen.

Nachdem Sie die Abfrage ausgeführt haben, können Sie einfach auf einen Visualisierungstyp klicken, um das Ergebnis in einem Diagramm darzustellen.

Benötigen Sie ein Reporting-Tool für MySQL? Ubiq macht es einfach, Daten innerhalb von Minuten zu visualisieren und in Echtzeit-Dashboards zu überwachen. Probieren Sie es noch heute aus!