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!