PostgreSQL

Как да използвам функцията PostgreSQL ARRAY_AGG?

Как да използвам функцията PostgreSQL ARRAY_AGG?
Агрегатният метод ARRAY_AGG () е един от методите, използвани в PostgreSQL, който приема няколко входни стойности и ги обединява в масив, включително NULL стойности. Той връща масив с всяка стойност от входната група като част. За да сортирате резултата чрез функцията PostgreSQL ARRAY_AGG, ще използвате фразата ORDER BY. Можете също да използвате клаузата WHERE, когато е необходимо.

За да разберете агрегирания метод ARRAY_Agg (), трябва да изпълните няколко примера. За тази цел отворете черупката на командния ред на PostgreSQL. Ако искате да включите другия сървър, направете го, като предоставите името му. В противен случай оставете празното място и натиснете бутона Enter, за да преминете към базата данни. Ако искате да използвате базата данни по подразбиране, напр.ж., Postgres, след това го оставете както е и натиснете Enter; в противен случай напишете името на база данни, напр.ж., „Тест“, както е показано на изображението по-долу. Ако искате да използвате друг порт, запишете го, в противен случай просто го оставете както е и докоснете Enter, за да продължите. Ще поискате да добавите потребителското име, ако искате да превключите към друго потребителско име. Добавете потребителското име, ако искате, в противен случай просто натиснете „Enter“. В крайна сметка трябва да предоставите текущата си потребителска парола, за да започнете да използвате командния ред, използвайки конкретния потребител, както е показано по-долу. След успешното въвеждане на цялата необходима информация можете да тръгнете.

Използване на ARRAY_AGG в една колона:

Да разгледаме таблицата „лице“ в базата данни „тест“, която има три колони; „Id“, „name“ и „age“. Колоната „id“ съдържа идентификационните номера на всички лица. Докато полето „име“ съдържа имената на лицата, а колоната „възраст“ възрастта на всички лица.

>> ИЗБЕРЕТЕ * ОТ човек;

В зависимост от режийната таблица, ние трябва да приложим агрегатния метод ARRAY_AGG, за да върнем списъка с масив от всички имена на таблицата чрез колона “name”. С това трябва да използвате функцията ARRAY_AGG () в заявката SELECT, за да извлечете резултата под формата на масив. Опитайте заявената заявка във вашата командна обвивка и получете резултата. Както можете да видите, имаме изходната колона по-долу „array_agg“ с имена, изброени в масив за същата заявка.

>> ИЗБЕРЕТЕ ARRAY_AGG (име) ОТ човек;

Използване на ARRAY_AGG в множество колони с клауза ORDER BY:

Пример 01:

Прилагайки функцията ARRAY_AGG към множество колони, докато използвате клаузата ORDER BY, помислете за една и съща таблица „лице“ в рамките на „теста“ на базата данни с три колони; „Id“, „name“ и „age“. В този пример ще използваме клаузата GROUP BY.

>> ИЗБЕРЕТЕ * ОТ човек;

Конкатенираме резултата от заявката SELECT в списък с масиви, докато използваме двете колони „име“ и „възраст“. В този пример използваме интервал като специален знак, който досега се използва за обединяване на двете колони. От друга страна, отделно извличаме колоната „id“. Резултатът от обединения масив ще бъде показан в колона „persondata“ по време на изпълнение. Наборът от резултати първо ще бъде групиран по „id“ на лицето и сортиран във възходящ ред на поле „id“. Нека опитаме командата по-долу в черупката и сами да видим резултатите. Можете да видите, че имаме отделен масив за всяка конкатенирана стойност на имената на изображението по-долу.

>> ИЗБЕРЕТЕ идент., ARRAY_AGG (име || "|| възраст) като персонални данни ОТ ГРУПА ПО ИД ПОРЪЧКА ПО ИД;



Пример 02:

Да разгледаме новосъздадена таблица „Служител“ в рамките на „теста“ на базата данни с пет колони; „Id“, „name“, „заплата“, „възраст“ и „имейл“. В таблицата се съхраняват всички данни за 5-те служители, работещи във фирма. В този пример ще използваме специалния символ '-' за обединяване на две полета, вместо да използваме интервал, докато използваме клаузата GROUP BY и ORDER BY.

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

Обединяваме данните от две колони „име“ и „имейл“ в масив, докато използваме „-“ между тях. По същия начин, както преди, извличаме колоната „id“ отчетливо. Резултатите от обединената колона ще бъдат показани като „emp“ по време на изпълнение. Наборът от резултати ще бъде първо сглобен от „id“ на лицето, а след това ще бъде организиран във възходящ ред на колона „id“. Нека опитаме много подобна команда в черупката с малки промени и да видим последиците. От резултата по-долу сте придобили различен масив за всяка свързана стойност име-имейл, представена на снимката, докато знакът "-" се използва във всяка стойност.

>> ИЗБЕРЕТЕ id, ARRAY_AGG (име || '-' || имейл) КАТО emp от FROM Служител GROUP BY id ORDER BY id;

Използване на ARRAY_AGG в множество колони без клауза ORDER BY:

Можете също така да изпробвате метода ARRAY_AGG на която и да е таблица, без да използвате клаузата ORDER BY и GROUP BY. Да приемем, че новосъздадената таблица „актьор“ във вашата стара „база данни“ има три колони; „Id“, „fname“ и „lname“. Таблицата съдържа данни за собствените и фамилните имена на актьора заедно с техните идентификатори.

>> ИЗБЕРЕТЕ * ОТ актьор;

Така че, обединете двете колони „fname“ и „lname“ в списък с масиви, докато използвате интервал между тях, както направихте в последните два примера. Не сме извадили ясно колоната „id“ и използваме функцията ARRAY_AGG в заявката SELECT. Полученият масив, свързан с колона, ще бъде представен като „актьори“. Опитайте посочената по-долу заявка в командната обвивка и погледнете резултантния масив. Взехме един масив с представена конкатенирана стойност име-имейл, разделена със запетая от резултата.

Заключение:

И накрая, почти приключихте с изпълнението на повечето примери, необходими за разбиране на агрегирания метод ARRAY_AGG. Опитайте повече от тях в края си за по-добро разбиране и знания.

Най-добрите приложения за картографиране на геймпад за Linux
Ако искате да играете игри на Linux с геймпад вместо типична система за въвеждане на клавиатура и мишка, има някои полезни приложения за вас. Много ко...
Полезни инструменти за геймърите на Linux
Ако искате да играете игри на Linux, има вероятност да сте използвали приложения и помощни програми като Wine, Lutris и OBS Studio, за да подобрите иг...
HD Remastered Games за Linux, които никога преди не са имали издание на Linux
Много разработчици и издатели на игри излизат с HD ремастер на стари игри, за да удължат живота на франчайза, моля феновете, които искат съвместимост ...