Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да създадете хистограма в MySQL?

Хистограмата ви помага да начертаете разпределението на честотата от данни и бързо да извлечете прозрения. Ето как да създадете хистограма в MySQL. Можете да го използвате за създаване на честотно разпределение в MySQL, както и в PostgreSQL.

Как да създадем хистограма в MySQL?

Ето SQL заявката за създаване на хистограма в MySQL.

Да приемем, че имате следната таблица sales(order_date, sale)

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

Бонус четене:Как да импортирам CSV файл в MySQL

Създайте хистограма в MySQL

Има множество MySQL Histrogram заявки за създаване на хистограма в MySQL. Ще разгледаме всеки един от тях.

Най-простият начин за създаване на хистограма в MySQL

Ако вашите MySQL хистограмни кошчета имат равни интервали (10-20, 20-30, 30-40 и т.н.), тогава ето SQL заявката за създаване на честотно разпределение в 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 |
+-----------+----------+

В горната заявка размерът на кошчето на хистограмата е 10. Ако искате да промените размера на кошчето на 25, променете floor(sale/10 )*10 до етаж (разпродажба/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 |
+-----------+----------+

Предимството на горния метод е, че той автоматично променя кошчетата въз основа на добавяне/изтриване/модификация на данни.

Бонус четене:Как да изчислим процента на конверсия в MySQL

Най-гъвкав начин за създаване на хистрограма в MySQL

Ако вече знаете кошчетата на хистограмата, които трябва да бъдат създадени, или ако размерите на кофата на хистограмата ви са различни, тогава можете да създадете разпределение на честотата, като използвате израза CASE. Ето заявката за хистограма за 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 |
+------------+-------+

В тази заявка можете да промените кофите на хистограмата към всеки диапазон, който искате, не е необходимо те да имат еднакви интервали. Тази заявка работи чудесно, ако имате 5-10 кофи.

Бонус за четене:Как да попълним липсващите дати в MySQL

След като създадете честотно разпределение в MySQL, можете да използвате инструмент за диаграми, за да го начертаете в колонна диаграма. Ето графика, създадена с Ubiq.

Между другото, ако искате да създавате диаграми, табла за управление и отчети от MySQL база данни, можете да опитате Ubiq. Предлагаме 14-дневен безплатен пробен период.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Не мога да се свържа с локален MySQL сървър чрез сокет '/var/mysql/mysql.sock' (38)

  2. MySQL Резултати като списък, разделен със запетая

  3. JSON_VALID() – Тествайте за валиден JSON в MySQL

  4. Запитване на няколко бази данни наведнъж

  5. node.js async/await се използва с MySQL