Gli istogrammi ti aiutano a visualizzare la distribuzione della frequenza nell'analisi dei dati e nei rapporti e a ottenere rapidamente informazioni dettagliate. Ecco come creare un istogramma in PostgreSQL. Esamineremo un paio di modi diversi per ottenere la distribuzione della frequenza in PostgreSQL.
Come creare un istogramma in PostgreSQL
Ecco i passaggi per creare l'istogramma in PostgreSQL.
Supponiamo che tu abbia la seguente tabella 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
Lettura bonus:Crea utente in PostgreSQL
Crea istogramma in PostgreSQL
Esistono più query di istogramma PostgreSQL per creare istogramma in PostgreSQL. Esamineremo ciascuno di essi.
Il modo più semplice per creare istogramma in PostgreSQL
Se vuoi che i bin dell'istogramma di PostgreSQL abbiano intervalli uguali (10-20, 20-30, 30-40, ecc.), ecco la query SQL per creare una distribuzione di frequenza in 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 | +-----------+----------+
Nella query precedente, calcoliamo il numero di bin dividendo ogni valore di vendita per la dimensione del bin dell'istogramma, ovvero 10. Se desideri modificare la dimensione del bin in 25, cambia floor(sale/10 )*10 a piano(vendita/25 )*25
Bonus Lettura: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 | +-----------+----------+
Il vantaggio del metodo sopra è che cambia automaticamente i bin in base all'aggiunta/cancellazione/modifica dei dati. Crea anche nuovi bin per nuovi dati e/o rimuove i bin nel caso in cui il loro conteggio diventi 0. Quindi ti consente di creare dinamicamente istogramma in PostgreSQL.
Bonus Lettura:PostgreSQL Crea Indice
Il modo più flessibile per creare un istrogramma in PostgreSQL
Se conosci già i bin dell'istogramma da creare o se le dimensioni del bucket dell'istogramma sono diverse, puoi creare la distribuzione di frequenza utilizzando l'istruzione CASE. Ecco la query dell'istogramma per 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 | +------------+-------+
In questa query, assegniamo un bucket per ogni valore di vendita utilizzando l'istruzione case. Puoi modificare i bucket dell'istogramma in qualsiasi intervallo desideri, non è necessario che abbiano intervalli uniformi.
Questa query ha 2 vantaggi:
- Puoi cambiare il nome del bucket in qualsiasi cosa tu voglia. Ad esempio, invece di visualizzare "100-150" puoi mostrarlo come "tra 100 e 150"
- Puoi avere dimensioni del secchio non uniformi. Ad esempio, puoi avere un bucket come 100-150 con una dimensione del bucket di 50 e un altro bucket come 150-250 con una dimensione del bucket di 100.
A seconda delle tue esigenze, puoi scegliere uno dei metodi sopra indicati per creare istogramma in PostgreSQL.
Ubiq semplifica la visualizzazione dei dati in pochi minuti e il monitoraggio in dashboard in tempo reale. Provalo oggi!