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

Jak vytvořit histogram v MySQL?

Histogram vám pomůže vykreslit distribuci frekvence z dat a rychle získat statistiky. Zde je návod, jak vytvořit histogram v MySQL. Můžete jej použít k vytvoření distribuce frekvence v MySQL i PostgreSQL.

Jak vytvořit histogram v MySQL?

Zde je dotaz SQL pro vytvoření histogramu v MySQL.

Řekněme, že máte následující tabulku prodej (datum_objednávky, prodej)

mysql> create table sales(order_date date,sale int);

mysql> insert into sales values('2020-04-01',210),
           ('2020-04-02',125),('2020-04-03',150),('2020-04-04',230),
           ('2020-04-05',200),('2020-04-10',220),('2020-04-06',250),
           ('2020-04-07',215),('2020-04-08',300),('2020-04-09',250);

mysql> select * from sales;
 order_date | sale
------------+------
 2020-04-01 |  210
 2020-04-02 |  125
 2020-04-03 |  150
 2020-04-04 |  230
 2020-04-05 |  200
 2020-04-10 |  220
 2020-04-06 |  250
 2020-04-07 |  215
 2020-04-08 |  300
 2020-04-09 |  250

Bonusové čtení:Jak importovat soubor CSV do MySQL

Vytvoření histogramu v MySQL

Pro vytvoření histogramu v MySQL existuje několik dotazů na histogram MySQL. Podíváme se na každý z nich.

Nejjednodušší způsob, jak vytvořit histogram v MySQL

Pokud mají vaše přihrádky histogramu MySQL stejné intervaly (10-20, 20-30, 30-40 atd.), pak zde je dotaz SQL pro vytvoření rozdělení frekvence v MySQL.

mysql> select floor(sale/10)*10 as bin_floor, count(*)
     from sales
     group by 1
     order by 1;
+-----------+----------+
| bin_floor | count(*) |
+-----------+----------+
|       120 |        1 |
|       150 |        1 |
|       200 |        1 |
|       210 |        2 |
|       220 |        1 |
|       230 |        1 |
|       250 |        2 |
|       300 |        1 |
+-----------+----------+

Ve výše uvedeném dotazu je velikost koše histogramu 10. Pokud chcete změnit velikost koše na 25, změňte podlaží (prodej/10 )*10 do patro (prodej/25 )*25

mysql> select floor(sale/25)*25 as bin_floor, count(*)
     from sales
     group by 1
     order by 1;
+-----------+----------+
| bin_floor | count(*) |
+-----------+----------+
|       125 |        1 |
|       150 |        1 |
|       200 |        4 |
|       225 |        1 |
|       250 |        2 |
|       300 |        1 |
+-----------+----------+

Výhodou výše uvedené metody je, že automaticky mění přihrádky na základě přidání/smazání/změny dat.

Bonusové čtení:Jak vypočítat konverzní poměr v MySQL

Nejflexibilnější způsob vytváření histrogramu v MySQL

Pokud již znáte přihrádky histogramů, které mají být vytvořeny, nebo pokud se velikosti vašeho segmentu histogramu liší, můžete vytvořit rozdělení frekvence pomocí příkazu CASE. Zde je dotaz Histogram pro MySQL

mysql> select "100-150" as TotalRange,count(sale) as Count from sales
        where sale between 100 and 150
     union (
     select "150-200" as TotalRange,count(sale) as Count from sales
        where sale between 150 and 200)
     union (
     select "200-225" as TotalRange,count(sale) as Count from sales
        where sale between 200 and 225)
     union (
     select "225-250" as TotalRange,count(sale) as Count from sales
        where sale between 225 and 250);
+------------+-------+
| TotalRange | Count |
+------------+-------+
| 100-150    |     2 |
| 150-200    |     2 |
| 200-225    |     4 |
| 225-250    |     3 |
+------------+-------+

V tomto dotazu můžete změnit segmenty histogramu na libovolný rozsah, nemusí mít jednotné intervaly. Tento dotaz funguje skvěle, pokud máte 5–10 kbelíků.

Bonusové čtení:Jak vyplnit chybějící data v MySQL

Po vytvoření distribuce frekvence v MySQL můžete použít nástroj pro vytváření grafů k jejímu vykreslení do sloupcového grafu. Zde je graf vytvořený pomocí Ubiq.

Mimochodem, pokud chcete vytvářet grafy, dashboardy a sestavy z databáze MySQL, můžete zkusit Ubiq. Nabízíme 14denní bezplatnou zkušební verzi.

  1. Kombinujte více příkazů SELECT

  2. Kde Android ukládá verzi databáze SQLite?

  3. Vícenásobná zpožděná replikace Slave pro zotavení po havárii s nízkou RTO

  4. Jak vytvořit počítané pole v dotazu Microsoft Access