PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да създадете хистограма в PostgreSQL

Хистограмите ви помагат да визуализирате разпределението на честотата при анализ на данни и отчитане и да получите информация бързо. Ето как да създадете хистограма в PostgreSQL. Ще разгледаме няколко различни начина за получаване на честотно разпределение в PostgreSQL.

Как да създадете хистограма в PostgreSQL

Ето стъпките за създаване на хистограма в PostgreSQL.

Да приемем, че имате следната таблица sales(order_date, sale)

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

Бонус за четене:Създаване на потребител в PostgreSQL

Създайте хистограма в PostgreSQL

Има множество заявки за PostgreSQL хистограма за създаване на хистограма в PostgreSQL. Ще разгледаме всеки един от тях.

Най-простият начин за създаване на хистограма в PostgreSQL

Ако искате PostgreSQL Histogram bins  да имат равни интервали (10-20, 20-30, 30-40 и т.н.), тогава ето SQL заявката за създаване на честотно разпределение в 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 |
+-----------+----------+

В горната заявка изчисляваме номера на кошчето, като разделим всяка стойност на продажба с размера на кошчето на хистограмата, тоест 10. Ако искате да промените размера на кошчето на 25, променете етаж(продажба/10) силно> )*10 до етаж (разпродажба/25 )*25

Бонус за четене:ИЗГЛЕЖДАНЕ НА PostgreSQL

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 |
+-----------+----------+

Предимството на горния метод е, че той автоматично променя кошчетата въз основа на добавяне/изтриване/модификация на данни. Той също така създава нови контейнери за нови данни и/или премахва контейнери, в случай че броят им стане 0. Така че ви позволява да създавате динамично хистограма в PostgreSQL.

Бонус за четене:PostgreSQL Създаване на индекс

Най-гъвкав начин за създаване на хистрограма в PostgreSQL

Ако вече знаете кошчетата на хистограмата, които трябва да бъдат създадени, или ако вашите размери на кофата на хистограмата са различни, тогава можете да създадете честотно разпределение с помощта на оператор CASE. Ето заявката за хистограма за 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 |
+------------+-------+

В тази заявка ние присвояваме кофа за всяка стойност на продажба, използвайки оператор case. Можете да промените сегментите на хистограмата на всеки диапазон, който искате, не е необходимо те да имат еднакви интервали.

Тази заявка има 2 предимства:

  1. Можете да промените името на сегмента на каквото искате. Например, вместо да показвате „100-150“, можете да го покажете като „между 100 и 150“
  2. Можете да имате нееднаквен размер на кофата. Например, можете да имате кофа като 100-150 с размер на кофата 50 и друга кофа като 150-250 с размер на кофата 100.

В зависимост от вашето изискване, можете да изберете някой от горните методи за създаване на хистограма в PostgreSQL.

Ubiq улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте днес!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Еквивалент на параметър с таблица в Postgresql

  2. Postgresql - архивиране на база данни и възстановяване на различен собственик?

  3. Таблица като аргумент на функция на PostgreSQL

  4. Postgresql Изберете редове, където колона =масив

  5. дублираният ключ на postgresql нарушава уникалното ограничение