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:
- 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"
- 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!