sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo crear un histograma en PostgreSQL

Los histogramas lo ayudan a visualizar la distribución de frecuencias en el análisis de datos y los informes, y obtener información rápidamente. Aquí se explica cómo crear un histograma en PostgreSQL. Veremos un par de formas diferentes de obtener la distribución de frecuencias en PostgreSQL.

Cómo crear un histograma en PostgreSQL

Estos son los pasos para crear un histograma en PostgreSQL.

Supongamos que tiene la siguiente tabla sales(order_date, sale)

postgres=# create table sales(order_date date,sale int);

postgres=# 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);

postgres=# 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:Crear usuario en PostgreSQL

Crear Histograma en PostgreSQL

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

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

Si desea que los contenedores de histogramas de PostgreSQL tengan intervalos iguales (10-20, 20-30, 30-40, etc.), esta es la consulta SQL para crear una distribución de frecuencia en PostgreSQL.

postgres=# 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, calculamos el número de ubicación dividiendo cada valor de venta por el tamaño de ubicación del histograma, es decir, 10. Si desea cambiar el tamaño de ubicación a 25, cambie piso(venta/10 )*10 al piso(venta/25 )*25

Lectura adicional:PostgreSQL DROP VIEW

postgres=# 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. También crea nuevos contenedores para nuevos datos y/o elimina contenedores en caso de que su recuento llegue a 0. Por lo tanto, le permite crear dinámicamente histogramas en PostgreSQL.

Lectura adicional:Crear índice de PostgreSQL

La forma más flexible de crear un histrograma en PostgreSQL

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 de histograma para PostgreSQL

postgresql=# 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, asignamos un depósito para cada valor de venta usando una declaración de caso. Puede cambiar los cubos de histograma a cualquier rango que desee, no es necesario que tengan intervalos uniformes.

Esta consulta tiene 2 ventajas:

  1. Puedes cambiar el nombre del depósito por el que quieras. Por ejemplo, en lugar de mostrar "100-150", puede mostrarlo como "entre 100 y 150"
  2. Puede tener un tamaño de cubeta no uniforme. Por ejemplo, puede tener un depósito de 100 a 150 con un tamaño de depósito de 50 y otro depósito de 150 a 250 con un tamaño de depósito de 100.

Según sus requisitos, puede elegir cualquiera de los métodos anteriores para crear un histograma en PostgreSQL.

Ubiq facilita la visualización de datos en minutos y la supervisión en paneles en tiempo real. ¡Pruébalo hoy!