sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan opretter du histogram i PostgreSQL

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:

  1. 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"
  2. 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!

  1. Kan MySQL erstatte flere tegn?

  2. Returner en liste over databaser i SQLite

  3. RETNING:MySQL – VÆLG kommando nægtet bruger

  4. Hvordan kontrollerer man, om en streng er en unik identifikator?