sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo crear un histograma en MySQL?

El histograma lo ayuda a trazar la distribución de frecuencia de los datos y obtener información rápidamente. Aquí se explica cómo crear un histograma en MySQL. Puede usarlo para crear una distribución de frecuencias en MySQL y PostgreSQL.

¿Cómo crear un histograma en MySQL?

Aquí está la consulta SQL para crear un histograma en MySQL.

Supongamos que tiene la siguiente tabla 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

Lectura adicional:Cómo importar un archivo CSV a MySQL

Crear Histograma en MySQL

Hay varias consultas de histograma de MySQL para crear un histograma en MySQL. Examinaremos cada uno de ellos.

La forma más sencilla de crear un histograma en MySQL

Si sus contenedores de histogramas de MySQL tienen intervalos iguales (10-20, 20-30, 30-40, etc.), aquí está la consulta SQL para crear una distribución de frecuencia en 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 |
+-----------+----------+

En la consulta anterior, el tamaño del contenedor del histograma es 10. Si desea cambiar el tamaño del contenedor a 25, cambie floor(sale/10 )*10 al piso(venta/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 |
+-----------+----------+

La ventaja del método anterior es que cambia automáticamente los contenedores en función de la adición/eliminación/modificación de datos.

Lectura adicional:Cómo calcular la tasa de conversión en MySQL

La forma más flexible de crear histrogramas en MySQL

Si ya conoce los contenedores de histogramas que se crearán o si los tamaños de los contenedores de histogramas son diferentes, puede crear una distribución de frecuencia utilizando la instrucción CASE. Aquí está la consulta Histogram para 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 |
+------------+-------+

En esta consulta, puede cambiar los cubos de histograma a cualquier rango que desee, no es necesario que tengan intervalos uniformes. Esta consulta funciona muy bien si tiene de 5 a 10 cubos.

Lectura adicional:Cómo completar las fechas que faltan en MySQL

Después de crear la distribución de frecuencias en MySQL, puede usar una herramienta de gráficos para trazarla en un gráfico de columnas. Aquí hay un gráfico creado con Ubiq.

Por cierto, si desea crear gráficos, paneles e informes a partir de la base de datos MySQL, puede probar Ubiq. Ofrecemos una prueba gratuita de 14 días.