PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment créer un histogramme dans PostgreSQL

Les histogrammes vous aident à visualiser la distribution des fréquences dans l'analyse et la création de rapports de données, et à obtenir rapidement des informations. Voici comment créer un histogramme dans PostgreSQL. Nous examinerons différentes manières d'obtenir une distribution de fréquence dans PostgreSQL.

Comment créer un histogramme dans PostgreSQL

Voici les étapes pour créer un histogramme dans PostgreSQL.

Disons que vous avez le tableau suivant 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

Lecture bonus :Créer un utilisateur dans PostgreSQL

Créer un histogramme dans PostgreSQL

Il existe plusieurs requêtes d'histogramme PostgreSQL pour créer un histogramme dans PostgreSQL. Nous allons examiner chacun d'eux.

Le moyen le plus simple de créer un histogramme dans PostgreSQL

Si vous souhaitez que les intervalles d'histogramme PostgreSQL aient des intervalles égaux (10-20, 20-30, 30-40, etc.), voici la requête SQL pour créer une distribution de fréquence dans 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 |
+-----------+----------+

Dans la requête ci-dessus, nous calculons le numéro de casier en divisant chaque valeur de vente par la taille de casier de l'histogramme, c'est-à-dire 10. Si vous souhaitez modifier la taille de casier à 25, modifiez floor(sale/10 )*10 au plancher(vente/25 )*25

Lecture bonus :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 |
+-----------+----------+

L'avantage de la méthode ci-dessus est qu'elle change automatiquement les bacs en fonction de l'ajout/de la suppression/de la modification des données. Il crée également de nouveaux bacs pour les nouvelles données et/ou supprime les bacs au cas où leur nombre deviendrait 0. Il vous permet donc de créer dynamiquement un histogramme dans PostgreSQL.

Lecture bonus :création d'un index PostgreSQL

Le moyen le plus flexible de créer un histogramme dans PostgreSQL

Si vous connaissez déjà les intervalles d'histogramme à créer ou si les tailles de vos compartiments d'histogramme sont différentes, vous pouvez créer une distribution de fréquence à l'aide de l'instruction CASE. Voici la requête Histogramme pour 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 |
+------------+-------+

Dans cette requête, nous attribuons un seau pour chaque valeur de vente à l'aide de l'instruction case. Vous pouvez modifier les compartiments de l'histogramme dans n'importe quelle plage de votre choix, ils n'ont pas besoin d'avoir des intervalles uniformes.

Cette requête a 2 avantages :

  1. Vous pouvez modifier le nom du bucket comme bon vous semble. Par exemple, au lieu d'afficher "100-150", vous pouvez l'afficher comme "entre 100 et 150"
  2. Vous pouvez avoir une taille de compartiment non uniforme. Par exemple, vous pouvez avoir un compartiment de 100-150 avec une taille de compartiment de 50 et un autre compartiment de 150-250 avec une taille de compartiment de 100.

Selon vos besoins, vous pouvez choisir l'une des méthodes ci-dessus pour créer un histogramme dans PostgreSQL.

Ubiq facilite la visualisation des données en quelques minutes et la surveillance dans des tableaux de bord en temps réel. Essayez-le aujourd'hui !