sql >> Databáze >  >> RDS >> Mysql

MySQL dotaz k získání nejprodávanějších produktů

Pokud provozujete internetový obchod nebo elektronický obchod, je důležité získat nejprodávanější produkty. Protože většina online webových stránek běží na MySQL, v tomto článku se podíváme na MySQL Query, abychom pro vaši firmu získali nejprodávanější produkty. Je to velmi užitečné pro pochopení, které produkty si vedou dobře a které potřebují postrčit. Tyto dotazy můžete použít k získání nejprodávanějších produktů nebo k získání seznamu nejprodávanějších položek na vašem webu.


Dotaz MySQL k získání nejprodávanějších produktů

Podíváme se na dva případy – za prvé, když jsou vaše informace o produktu a informace o prodeji ve stejné tabulce. Za druhé, když jsou informace o vašem produktu a prodeji v různých tabulkách.


Jak získat nejprodávanější produkty

Řekněme, že máte tabulku prodej (id, produkt, datum_objednávky, částka) která obsahuje informace o produktu a výši prodeje v jediné tabulce.

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

Získáme nejprodávanější produkt podle prodejů a podle objemu.

Bonusové čtení:Jak získat vícenásobné počty v MySQL


Nejprodávanější produkty podle celkového prodeje

Zde je dotaz SQL pro získání nejprodávanějších produktů podle celkového prodeje. V našem případě vybereme 3 nejprodávanější produkty podle celkového objemu prodeje.

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

Podívejme se na výše uvedený dotaz podrobně. V zásadě SKUPUJEME PODLE produktu sloupec a souhrnná částka pomocí funkce SUM.

Dále OBJEDNÁVÁME PODLE sumy (částky) v sestupném pořadí tak, aby nejprodávanější produkty byly uvedeny nahoře. Také používáme klauzuli LIMIT 3 k výběru pouze prvních 3 řádků výsledku.


Nejprodávanější produkty podle celkového objemu

Zde je dotaz SQL pro získání nejprodávanějších produktů podle celkového objemu, tedy počtu prodejů.

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


Nyní se podíváme na druhý případ. Někdy jsou informace o produktu a prodeji uvedeny v různých tabulkách.

Řekněme, že máte dvě tabulky product(id, product_name) a prodej (id, produkt_id, datum_objednavky, částka)

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

Bonusové čtení:Jak používat COALESCE v MySQL


Nejprodávanější produkty podle celkového prodeje

Zde je dotaz SQL pro získání nejprodávanějších produktů podle celkového prodeje. V podstatě spojíme dvě tabulky, abychom ve výsledku dotazu získali název produktu a celkový prodej.

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

Podívejme se na výše uvedený dotaz podrobně. VYBEREME název_produktu a součet (částka) sloupce z produktu a prodeje tabulky. Tyto dvě tabulky spojíme pomocí product_id sloupec z prodeje tabulka a id sloupec z produktu tabulka, GROUP BY produkt sloupec a souhrnná částka pomocí funkce SUM.

Dále OBJEDNÁVÁME PODLE sumy (částky) v sestupném pořadí tak, aby nejprodávanější produkty byly uvedeny nahoře. Také používáme klauzuli LIMIT 3 k výběru pouze prvních 3 řádků výsledku.

Bonusové čtení:Jak dotazovat sloupec JSON v MySQL


Nejprodávanější produkty podle celkového objemu

Zde je dotaz SQL pro získání nejprodávanějších produktů podle celkového objemu, tedy počtu prodejů.

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


Získejte nejprodávanější produkty pomocí Ubiq

Nástroj Ubiq Reporting podporuje všechny výše uvedené SQL dotazy a usnadňuje vizualizaci výsledků SQL různými způsoby. Umožňuje také vytvářet dashboardy a grafy z dat MySQL. Zde je dotaz SQL pro získání nejprodávanějších produktů v Ubiq.

Ve skutečnosti po spuštění dotazu můžete jednoduše kliknout na typ vizualizace a výsledek vykreslit do grafu.

Potřebujete nástroj pro vytváření sestav pro MySQL? Ubiq usnadňuje vizualizaci dat během několika minut a sledování na řídicích panelech v reálném čase. Zkuste to ještě dnes!

  1. SQL Server Pre-Login Handshake Acknowledgement Error

  2. Klauzule INNER JOIN ON vs WHERE

  3. Používejte relační databáze MySQL na Ubuntu 8.04 (Hardy)

  4. Nejlepší způsob, jak uložit čas (hh:mm) do databáze