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.