sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man skapar histogram i PostgreSQL

Histogram hjälper dig att visualisera frekvensfördelning i dataanalys och rapportering och få insikter snabbt. Så här skapar du ett histogram i PostgreSQL. Vi kommer att titta på ett par olika sätt att få frekvensdistribution i PostgreSQL.

Hur man skapar histogram i PostgreSQL

Här är stegen för att skapa histogram i PostgreSQL.

Låt oss säga att du har följande tabell försäljning(orderdatum, rea)

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:Skapa användare i PostgreSQL

Skapa histogram i PostgreSQL

Det finns flera PostgreSQL Histogram-frågor för att skapa histogram i PostgreSQL. Vi kommer att titta på var och en av dem.

Enklaste sättet att skapa histogram i PostgreSQL

Om du vill att PostgreSQL-histogramfack ska ha lika intervall (10-20, 20-30, 30-40, etc.) så är här SQL-frågan för att skapa frekvensdistribution 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 ovanstående fråga beräknar vi facknumret genom att dividera varje försäljningsvärde med histogramfackstorleken, det vill säga 10. Om du vill ändra fackstorleken till 25, ändra floor(sale/10) stark> )*10 till våning(rea/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 |
+-----------+----------+

Fördelen med ovanstående metod är att den automatiskt ändrar soporna baserat på tillägg/radering/ändring av data. Den skapar också nya lagerplatser för ny data och/eller tar bort lagerplatser om deras antal blir 0. Så det låter dig skapa ett histogram dynamiskt i PostgreSQL.

Bonus Läs:PostgreSQL Skapa index

Det mest flexibla sättet att skapa histogram i PostgreSQL

Om du redan vet vilka histogramfack som ska skapas eller om dina histogramhinkstorlekar är olika, kan du skapa frekvensfördelning med CASE-satsen. Här är histogramfrågan för 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 den här frågan tilldelar vi en bucket för varje försäljningsvärde med hjälp av case statement. Du kan ändra histogramhinkarna till vilket intervall du vill, de behöver inte ha enhetliga intervall.

Den här frågan har två fördelar:

  1. Du kan ändra segmentets namn till vad du vill. Till exempel, istället för att visa "100-150" kan du visa det som "mellan 100 och 150"
  2. Du kan ha ojämn storlek på hinken. Till exempel kan du ha en hink som 100-150 med en hinkstorlek på 50 och en annan hink som 150-250 med en hinkstorlek på 100.

Beroende på dina krav kan du välja någon av ovanstående metoder för att skapa histogram i PostgreSQL.

Ubiq gör det enkelt att visualisera data på några minuter och övervaka i realtidsinstrumentpaneler. Prova det idag!

  1. Kan en Android-app ansluta direkt till en online mysql-databas

  2. Android:SQLite sparar strängarray?

  3. Returnera SETOF rader från PostgreSQL-funktionen

  4. Hur man avslutar PostgreSQLs kommandoradsverktyg (psql)