Histogrammer hjælper dig med at visualisere frekvensfordeling i dataanalyse og rapportering og få indsigt hurtigt. Sådan opretter du histogram i PostgreSQL. Vi vil se på et par forskellige måder at få frekvensfordeling i PostgreSQL.
Sådan opretter du histogram i PostgreSQL
Her er trinene til at oprette histogram i PostgreSQL.
Lad os sige, at du har følgende tabel salg(ordre_dato, udsalg)
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
Bonuslæsning:Opret bruger i PostgreSQL
Opret histogram i PostgreSQL
Der er flere PostgreSQL Histogram-forespørgsler til at oprette histogram i PostgreSQL. Vi vil se på hver af dem.
Den enkleste måde at oprette Histogram i PostgreSQL
Hvis du vil have PostgreSQL Histogram bins til at have ens intervaller (10-20, 20-30, 30-40 osv.), så er her SQL-forespørgslen til at oprette frekvensfordeling i 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 | +-----------+----------+
I ovenstående forespørgsel beregner vi beholdernummeret ved at dividere hver salgsværdi med histogrambeholderstørrelse, det vil sige 10. Hvis du vil ændre beholderstørrelsen til 25, skal du ændre floor(sale/10 stærk> )*10 til etage(salg/25 )*25
Bonus Læs: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 | +-----------+----------+
Fordelen ved ovenstående metode er, at den automatisk ændrer bakken baseret på tilføjelse/sletning/ændring af data. Det opretter også nye bins til nye data og/eller fjerner bins, hvis deres antal bliver 0. Så det giver dig mulighed for dynamisk at oprette histogram i PostgreSQL.
Bonus Læs:PostgreSQL Opret indeks
Mest fleksible måde at oprette histogram på i PostgreSQL
Hvis du allerede kender histogrambakkerne, der skal oprettes, eller hvis dine histogrambøttestørrelser er forskellige, så kan du oprette frekvensfordeling ved hjælp af CASE-sætning. Her er histogramforespørgslen til 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 | +------------+-------+
I denne forespørgsel tildeler vi en bucket for hver salgsværdi ved hjælp af case statement. Du kan ændre histogramblokkene til et hvilket som helst område, du ønsker, de behøver ikke at have ensartede intervaller.
Denne forespørgsel har 2 fordele:
- Du kan ændre bøttenavnet til alt, hvad du vil. For eksempel, i stedet for at vise "100-150" kan du vise det som "mellem 100 og 150"
- Du kan have en uensartet spandstørrelse. For eksempel kan du have en spand som 100-150 med en spandstørrelse på 50 og en anden spand som 150-250 med en spandstørrelse på 100.
Afhængigt af dit krav kan du vælge en af ovenstående metoder til at oprette histogram i PostgreSQL.
Ubiq gør det nemt at visualisere data på få minutter og overvåge i dashboards i realtid. Prøv det i dag!