sql >> Databáze >  >> RDS >> PostgreSQL

Jak vytvořit histogram v PostgreSQL

Histogramy vám pomohou vizualizovat distribuci četnosti při analýze dat a vytváření sestav a rychle získáte statistiky. Zde je návod, jak vytvořit histogram v PostgreSQL. Podíváme se na několik různých způsobů, jak získat distribuci frekvence v PostgreSQL.

Jak vytvořit histogram v PostgreSQL

Zde jsou kroky k vytvoření histogramu v PostgreSQL.

Řekněme, že máte následující tabulku prodej (datum_objednávky, prodej)

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

Bonusové čtení:Vytvořte uživatele v PostgreSQL

Vytvoření histogramu v PostgreSQL

Pro vytvoření histogramu v PostgreSQL existuje několik dotazů PostgreSQL Histogram. Podíváme se na každý z nich.

Nejjednodušší způsob, jak vytvořit histogram v PostgreSQL

Pokud chcete, aby přihrádky histogramu PostgreSQL měly stejné intervaly (10-20, 20-30, 30-40 atd.), pak zde je dotaz SQL pro vytvoření rozdělení frekvence v 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 |
+-----------+----------+

Ve výše uvedeném dotazu vypočítáme číslo přihrádky tak, že každou hodnotu prodeje vydělíme velikostí přihrádky histogramu, tedy 10. Pokud chcete změnit velikost přihrádky na 25, změňte podlaží(výprodej/10 silný> )*10 do patro (prodej/25 )*25

Bonusové čtení: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 |
+-----------+----------+

Výhodou výše uvedeného způsobu je, že automaticky mění zásobníky na základě přidání/smazání/úpravy dat. Vytváří také nové přihrádky pro nová data a/nebo přihrádky odstraňuje v případě, že se jejich počet stane 0. Umožňuje vám tedy dynamicky vytvářet histogram v PostgreSQL.

Bonusové čtení:Vytvořit index PostgreSQL

Nejflexibilnější způsob vytváření histrogramu v PostgreSQL

Pokud již znáte přihrádky histogramů, které mají být vytvořeny, nebo pokud se velikosti vašeho segmentu histogramu liší, můžete vytvořit rozdělení frekvence pomocí příkazu CASE. Zde je dotaz Histogram pro 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 |
+------------+-------+

V tomto dotazu přiřadíme segment pro každou prodejní hodnotu pomocí případu. Segmenty histogramu můžete změnit na libovolný rozsah, nemusí mít jednotné intervaly.

Tento dotaz má 2 výhody:

  1. Název segmentu můžete změnit na libovolný. Například místo zobrazení „100–150“ jej můžete zobrazit jako „mezi 100 a 150“
  2. Můžete mít nejednotnou velikost segmentu. Můžete mít například kbelík 100–150 s velikostí kbelíku 50 a další kbelík 150–250 s velikostí kbelíku 100.

V závislosti na vašich požadavcích si můžete vybrat kteroukoli z výše uvedených metod pro vytvoření histogramu v PostgreSQL.

Ubiq usnadňuje vizualizaci dat během několika minut a sledování na řídicích panelech v reálném čase. Vyzkoušejte to ještě dnes!

  1. Upozornění:mysql_result() očekává, že parametr 1 bude zdrojem, zadaný booleovský

  2. Oracle:existuje nějaký logický důvod, proč nepoužívat paralelní spouštění s poddotazy v seznamu SELECT?

  3. Oracle UTL_SMTP:Příklad odeslání pošty s přílohou pomocí ověřování Oracle Wallet Authentication

  4. Dotaz na posledních N souvisejících řádků na řádek