PostgreSQL

Функция на прозореца PostgreSQL NTILE

Функция на прозореца PostgreSQL NTILE
Методите на прозореца в PostgreSQL са изхвърлени, за да се изравнят различаващи се данни и са от съществено значение за аналитичните и други случаи на използване на PostgreSQL. Методът NTILE (), последван от клаузата OVER в PostgreSQL, се изхвърля, за да се разделят организираните редове в донякъде като поредица от градуирани кофи. Кофите не са нищо повече от набор от класирани групи. В цялата статия ще откриете как да разделите сортираните редове в дял на дадена фигура от класирани групи с помощта на функцията PostgreSQL NTILE (). Методът NTILE () разпределя номер на сегмент на всяка група, започваща от 1 в набор, демонстрирайки комплекта, към който редът има своето място.

Синтаксис:

>> NTILE (сегменти) НАД ([ДЯЛ ПО ДЯЛ израз, ...] [ПОРЪЧКА ПО СРИЦ израз]] [ASC | DESC], ...]);

На първо място, за да разберете метода NTILE, влезте от черупката на PostgreSQL. Ето защо се опитайте да стартирате черупката на командния ред на PostgreSQL от приложенията. За да работите на друг сървър, въведете името на сървър; в противен случай натиснете Enter. Ако трябва да практикувате в предварително определената база данни, напр.ж., Postgres, след това натиснете Enter или друго, впишете заглавие на банка данни, напр.ж. 'тест'. За да използвате порт, различен от 5432, впишете го; ако не, оставете го както е и натиснете Enter, за да продължите. Той може да поиска да въведете потребителското име, в случай че трябва да преминете към ново потребителско име. Въведете потребителското име; в противен случай просто натиснете Enter. И накрая, трябва да поставите настоящата си потребителска парола, за да превключите с помощта на командния ред, използвайки конкретния потребител като отдолу. Впоследствие, ефективно въвеждане на всички задължителни данни, можете да започнете да работите върху NTILE.

За да започнете работа по NTILE, трябва да създадете нова таблица с помощта на командата CREATE, ако нямате такава. Помислете върху показаната по-долу таблица „служител“ във вашата база данни PostgreSQL, наречена „тест“. Тази таблица съдържа четири колони e.ж., идентификатор, име, възраст и заплата на служител на определена компания. Всяка колона има общо 10 реда, което означава 10 записа във всяко поле на колона.

>> ИЗБЕРЕТЕ * ОТ служител;

В началото трябва да разберем простата концепция за извличане на записи от таблица с помощта на клаузата ORDER BY. Изпълняваме командата SELECT по-долу, без да използваме NTILE, за да разработим и разберем концепцията за кратко. Извличаме записи за колони; име, възраст и заплата при сортиране на записите във възходящ ред на поле „възраст“. Можете да видите, че той просто ще покаже записите, както е представено на изображението.

>> ИЗБЕРЕТЕ име, възраст, заплата ОТ СЛУЖИТЕЛ ПОРЪЧКА ПО възраст;

Използване на NTILE () OVER с клауза ORDER BY:

Ако приемем същата таблица „служител“, нека започнем да използваме клаузата NTILE () OVER в нашия пример. В този пример избираме двете колони; име и заплата, докато се сортира резултатът, свързан с възходящ ред на колона „заплата“. Резултатът ще съдържа данни, когато възрастта на служител е по-голяма от 24 години. Определихме стойността на сегмента NTILE като „3“, защото искаме да разделим редовете на 3 групи, e.ж., 1 до 3. Можете да видите, че редовете са успешно разделени на 3 равни групи, съдържащи 3 реда във всяка група.

>> ИЗБЕРЕТЕ име, заплата, NTILE (3) НАД (ПОРЪЧКА ПО заплата) Fromemloyee WHERE възраст> '24';

Сега, нека вземем друг пример, докато използваме същата таблица „служител“. Този път искаме да извлечем записите от три колони; име, възраст и заплата, използвайки заявката SELECT в командната обвивка. Има леки промени в клаузата WHERE. В момента търсим записите на таблица „служител“, където възрастта е по-малка от 27 години, което ще получи само записите на възраст под 27 години. От друга страна, няма промяна в стойността на сегмента, тъй като тя отново е 3. Опитвайки посочената команда, открихме само три записа, разделени по равно на 3 групи, както е показано на снимката.

>> ИЗБЕРЕТЕ име, възраст, заплата, NTILE (3) НАД (ПОРЪЧКА ПО заплата) ОТ служител КЪДЕ възраст < '27';

Използване на NTILE () НАД С КЛАУЗА ЗА ПОРЪЧКА И ДЕЛЕНЕ ПО:

Нека имаме пример за NTILE () OVER, докато едновременно използваме клаузите PARTITION BY и ORDER BY. Да предположим, че ще се използва непроменената таблица „служител“ от базата данни „тест“. В този пример трябва да изберете трите колони; име, възраст и заплата, докато сортирате по възходящ начин на поле "възраст". Освен това използвахме клаузата PARTITION BY в колоната „заплата“, за да направим дялове на таблица според тази колона. Няма конкретно условие, което да е използвано в тази конкретна заявка, което означава, че всички записи на таблица „служител“ ще бъдат показани. Кофата NTILE има стойност „3“. При изпълнението на заявената по-долу заявка ще видите резултата по-долу. Разделянията се извършват според различните стойности на колона „заплата“. Всички стойности на колона „заплата“ са различни, затова се намира в различни дялове, с изключение на стойността „60000“. Това означава, че всеки дял има 1 стойност с изключение на една. След това всички редове на дялове се класираха през групи. Само една кофа получи 2-ри ранг.

>> ИЗБЕРЕТЕ име, възраст, заплата, NTILE (3) НАД (ДЯЛ ПО ЗАПЛАТА, ПОРЪЧКА ПО ВЪЗРАСТ) ОТ служител;

Вземане на същия пример за NTILE () OVER с използване на клауза PARTITION BY и ORDER BY с клауза WHERE. В клаузата WHERE дефинирахме условието, което казва, че единствените записи, които ще бъдат извлечени, са когато възрастта на служителя е под 27 години. Получихме само 3 резултата с 2 дяла според възрастта и „ntile“ колона с рангове.

>> ИЗБЕРЕТЕ име, възраст, заплата, NTILE (3) НАД (ДЯЛ ПО ЗАПЛАТА, ПОРЪЧКА ПО ВЪЗРАСТ) ОТ служител КЪДЕ възраст < '27';

Заключение:

В това ръководство обсъдихме различни примери за ntile функции. Можете да ги приложите според вашите нужди.

Vulkan за потребители на Linux
С всяко ново поколение графични карти виждаме, че разработчиците на игри преместват границите на графичната вярност и се приближават една крачка до фо...
OpenTTD срещу Simutrans
Създаването на собствена транспортна симулация може да бъде забавно, релаксиращо и изключително примамливо. Ето защо трябва да сте сигурни, че изпробв...
Урок за OpenTTD
OpenTTD е една от най-популярните бизнес симулационни игри там. В тази игра трябва да създадете прекрасен транспортен бизнес. Въпреки това, ще започне...