Da biste razumjeli agregatnu metodu ARRAY_Agg (), morate izvesti nekoliko primjera. U tu svrhu otvorite ljusku naredbenog retka PostgreSQL. Ako želite uključiti drugi poslužitelj, navedite njegovo ime. U suprotnom, ostavite prazan prostor i pritisnite tipku Enter za skok na bazu podataka. Ako želite koristiti zadanu bazu podataka, npr.g., Postgres, a zatim ga ostavite kakav jest i pritisnite Enter; u suprotnom, napišite ime baze podataka, npr.g., "Test", kao što je prikazano na donjoj slici. Ako želite koristiti drugu luku, zapišite je, inače je samo ostavite takvu kakva jest i za nastavak dodirnite Enter. Zatražit će od vas da dodate korisničko ime ako želite prijeći na drugo korisničko ime. Dodajte korisničko ime ako želite, u suprotnom samo pritisnite "Enter". Na kraju, morate navesti trenutnu korisničku lozinku da biste počeli koristiti naredbenu liniju koristeći tog određenog korisnika kao što je prikazano u nastavku. Nakon uspješnog unosa svih potrebnih podataka, spremni ste za polazak.
Upotreba ARRAY_AGG u jednom stupcu:
Uzmite u obzir tablicu "osoba" u "testu" baze podataka koja ima tri stupca; "Id", "ime" i "dob". Stupac "id" sadrži ID-ove svih osoba. Dok polje "ime" sadrži imena osoba, a stupac "dob" dob svih osoba.
>> ODABERI * OD osobe;
Ovisno o općoj tablici, moramo primijeniti agregatnu metodu ARRAY_AGG za vraćanje popisa niza svih imena tablice putem stupca "name". Uz to morate upotrijebiti funkciju ARRAY_AGG () u SELECT upitu da biste dohvatili rezultat u obliku polja. Isprobajte navedeni upit u svojoj naredbenoj ljusci i dobijte rezultat. Kao što vidite, imamo donji izlazni stupac "array_agg" koji ima imena navedena u nizu za isti upit.
>> ODABERI ARRAY_AGG (ime) OD osobe;
Korištenje ARRAY_AGG na više stupaca s klauzulom ORDER BY:
Primjer 01:
Primjenjujući funkciju ARRAY_AGG na više stupaca dok koristite klauzulu ORDER BY, uzmite u obzir istu tablicu "osoba" u okviru "testa" baze podataka koja ima tri stupca; "Id", "ime" i "dob". U ovom ćemo primjeru koristiti klauzulu GROUP BY.
>> ODABERI * OD osobe;
Spajamo rezultat upita SELECT na popisu polja koristeći dva stupca "name" i "age". U ovom primjeru koristili smo prostor kao poseban znak koji je do sada korišten za spajanje oba ova stupca. S druge strane, stupac "id" dohvaćamo odvojeno. Rezultat spojenog polja bit će prikazan u stupcu "persondata" tijekom izvođenja. Skup rezultata prvo će se grupirati prema “id” osobe i sortirati u rastućem redoslijedu polja “id”. Pokušajmo naredbu ispod u ljusci i sami pogledajte rezultate. Na donjoj slici možete vidjeti da imamo zaseban niz za svaku ujedinjenu vrijednost imena-dobi.
>> ODABERI id, ARRAY_AGG (ime || "|| dob) kao persondata OD osobe GROUP BY id ORDER BY id;
Primjer 02:
Razmotrite novostvorenu tablicu "Zaposlenik" u okviru "testa" baze podataka koja ima pet stupaca; "Id", "name", "pay", "age" i "email". Tablica pohranjuje sve podatke o 5 zaposlenika koji rade u tvrtki. U ovom ćemo primjeru koristiti posebni znak '-' za spajanje dva polja umjesto da koristimo razmak dok koristimo klauzulu GROUP BY i ORDER BY.
>> ODABERITE * OD zaposlenika;
Povezujemo podatke dvaju stupaca, „ime“ i „e-pošta“ u niz, dok između njih koristimo „-“. Kao i prije, stupac "id" izdvajamo izrazito. Rezultati povezanih stupaca prikazat će se kao "prazni" tijekom izvođenja. Skup ishoda prvo će se sastaviti prema "id" osobe, a nakon toga će biti organiziran uzlaznim redoslijedom stupca "id". Pokušajmo vrlo sličnu naredbu u ljusci s manjim promjenama i sagledajmo posljedice. Iz donjeg rezultata stekli ste zaseban niz za svaku ujedinjenu vrijednost imena-e-pošte predstavljenu na slici, dok se znak "-" koristi u svakoj vrijednosti.
>> ODABERITE id, ARRAY_AGG (ime || '-' || e-pošta) KAO EM FROM zaposlenika GRUPA PO IDU NARUDŽBA PO id;
Korištenje ARRAY_AGG na više stupaca bez klauzule ORDER BY:
Također možete isprobati metodu ARRAY_AGG na bilo kojoj tablici bez upotrebe klauzule ORDER BY i GROUP BY. Pretpostavimo da je novostvorena tablica „glumac“ u vašoj staroj „provjeri“ baze podataka imala tri stupca; “Id”, “fname” i “lname”. Tablica sadrži podatke o glumčevim imenima i prezimenima zajedno s njihovim ID-ovima.
>> ODABERI * IZ glumca;
Dakle, spojite dva stupca "fname" i "lname" na popisu polja dok koristite razmak između njih, isto kao što ste to učinili u posljednja dva primjera. Nismo jasno izvadili stupac 'id', a koristili smo funkciju ARRAY_AGG unutar upita SELECT. Rezultirani stupac povezan s nizom prikazat će se kao "glumci". Isprobajte dolje navedeni upit u naredbenoj ljusci i uvid u rezultirani niz. Dohvatili smo jedan niz s predstavljenom spojenom vrijednošću ime-adresa, odvojen zarezom od ishoda.
Zaključak:
Napokon, skoro ste gotovi s izvršavanjem većine primjera potrebnih za razumijevanje ARRAY_AGG agregatne metode. Isprobajte ih više na svom kraju za bolje razumijevanje i znanje.