Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak utworzyć histogram w MySQL?

Histogram pomaga w kreśleniu rozkładu częstotliwości na podstawie danych i szybkim wyciąganiu wniosków. Oto jak utworzyć histogram w MySQL. Możesz go użyć do stworzenia dystrybucji częstotliwości zarówno w MySQL, jak i PostgreSQL.

Jak utworzyć histogram w MySQL?

Oto zapytanie SQL do utworzenia histogramu w MySQL.

Załóżmy, że masz następującą tabelę sprzedaż(data_zamówienia, sprzedaż)

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

Przeczytaj bonus:Jak zaimportować plik CSV do MySQL

Utwórz histogram w MySQL

Istnieje wiele zapytań MySQL Histogram do utworzenia histogramu w MySQL. Przyjrzymy się każdemu z nich.

Najprostszy sposób tworzenia histogramu w MySQL

Jeśli Twoje pojemniki MySQL Histogram mają równe przedziały (10-20, 20-30, 30-40 itd.), oto zapytanie SQL, aby utworzyć rozkład częstotliwości w 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 |
+-----------+----------+

W powyższym zapytaniu rozmiar pojemnika histogramu wynosi 10. Jeśli chcesz zmienić rozmiar pojemnika na 25, zmień piętro(wyprzedaż/10 )*10 na piętro(wyprzedaż/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 |
+-----------+----------+

Zaletą powyższej metody jest to, że automatycznie zmienia ona pojemniki na podstawie dodawania/usuwania/modyfikowania danych.

Przeczytaj bonus:Jak obliczyć współczynnik konwersji w MySQL

Najbardziej elastyczny sposób tworzenia histogramu w MySQL

Jeśli znasz już pojemniki histogramu, które mają zostać utworzone lub jeśli rozmiary segmentów histogramu są różne, możesz utworzyć rozkład częstotliwości za pomocą instrukcji CASE. Oto zapytanie histogramu dla 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 |
+------------+-------+

W tym zapytaniu możesz zmienić zasobniki histogramu na dowolny zakres, nie muszą one mieć jednakowych interwałów. To zapytanie działa świetnie, jeśli masz 5-10 segmentów.

Przeczytaj bonus:Jak wypełnić brakujące daty w MySQL

Po utworzeniu rozkładu częstotliwości w MySQL możesz użyć narzędzia do tworzenia wykresów, aby wykreślić go na wykresie kolumnowym. Oto wykres utworzony przy użyciu Ubiq.

Przy okazji, jeśli chcesz tworzyć wykresy, dashboardy i raporty z bazy danych MySQL, możesz wypróbować Ubiq. Oferujemy 14-dniowy bezpłatny okres próbny.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie z wieloma wartościami w kolumnie

  2. odpowiedniki onbeforeprint() i onafterprint() dla przeglądarek innych niż IE

  3. ROW_NUMBER w SQL — wybierz najlepszy przykład w SQL i SQL Server

  4. MySQL DATEDIFF() vs TIMEDIFF():Jaka jest różnica?

  5. Jak zmienić strefę czasową serwera MySQL