PostgreSQL

Kako uporabljati funkcijo PostgreSQL ARRAY_AGG?

Kako uporabljati funkcijo PostgreSQL ARRAY_AGG?
Agregatna metoda ARRAY_AGG () je ena izmed metod, ki se uporablja v PostgreSQL, ki zajema več vhodnih vrednosti in jih združuje v matriko, vključno z NULL vrednostmi. Vrne matriko z vsako vrednostjo iz vhodne skupine kot del. Če želite razvrstiti nabor rezultatov s pomočjo funkcije PostgreSQL ARRAY_AGG, boste uporabili besedno zvezo ORDER BY. Po potrebi lahko uporabite tudi klavzulo WHERE.

Če želite razumeti agregatno metodo ARRAY_Agg (), morate izvesti več primerov. V ta namen odprite lupino ukazne vrstice PostgreSQL. Če želite vklopiti drugi strežnik, to storite tako, da navedete njegovo ime. V nasprotnem primeru pustite prostor prazen in pritisnite gumb Enter, da skočite na bazo podatkov. Če želite uporabiti privzeto bazo podatkov, npr.g., Postgres, nato ga pustite, kot je, in pritisnite Enter; v nasprotnem primeru napišite ime baze podatkov, npr.g., "Test", kot je prikazano na spodnji sliki. Če želite uporabiti druga vrata, jih zapišite, drugače pa jih pustite takšne, kot so, in za nadaljevanje tapnite Enter. Če želite preklopiti na drugo uporabniško ime, boste morali dodati uporabniško ime. Če želite, dodajte uporabniško ime, sicer pritisnite "Enter". Na koncu morate navesti trenutno uporabniško geslo, da začnete uporabljati ukazno vrstico z uporabo tega uporabnika, kot je prikazano spodaj. Po uspešnih vnosih vseh zahtevanih informacij ste pripravljeni.

Uporaba ARRAY_AGG v enem stolpcu:

Razmislite o tabeli "oseba" v bazi podatkov "test", ki ima tri stolpce; »Id«, »ime« in »starost«. Stolpec »id« vsebuje id-je vseh oseb. Medtem ko polje "ime" vsebuje imena oseb, stolpec "starost" pa starost vseh oseb.

>> IZBERI * OD osebe;

Glede na pregledno tabelo moramo uporabiti agregatno metodo ARRAY_AGG, da vrnemo seznam polja vseh imen tabele prek stolpca "name". S tem morate uporabiti funkcijo ARRAY_AGG () v poizvedbi SELECT, da pridobite rezultat v obliki matrike. Preizkusite navedeno poizvedbo v ukazni lupini in dobite rezultat. Kot lahko vidite, imamo v spodnjem izhodnem stolpcu "array_agg" imena, ki so navedena v matriki za isto poizvedbo.

>> SELECT ARRAY_AGG (ime) OD osebe;

Uporaba ARRAY_AGG v več stolpcih s klavzulo ORDER BY:

Primer 01:

Če uporabite funkcijo ARRAY_AGG za več stolpcev, medtem ko uporabljate stavek ORDER BY, upoštevajte isto tabelo "oseba" znotraj "testa" baze podatkov, ki ima tri stolpce; »Id«, »ime« in »starost«. V tem primeru bomo uporabili stavek GROUP BY.

>> IZBERI * OD osebe;

Rezultat poizvedbe SELECT združujemo v seznam matrike, medtem ko uporabljamo dva stolpca "ime" in "starost". V tem primeru smo kot poseben znak uporabljali presledek, ki je bil doslej uporabljen za povezovanje obeh stolpcev. Po drugi strani pa stolpec »id« pridobivamo ločeno. Rezultat združenega polja bo v času izvajanja prikazan v stolpcu »persondata«. Rezultatski niz bo najprej razvrščen po “id” osebe in razvrščen po naraščajočem vrstnem redu polja “id”. Preizkusimo spodnji ukaz v lupini in si oglejte rezultate sami. Vidite, da imamo na spodnji sliki ločeno matriko za vsako združeno vrednost za starost imena.

>> IZBERI id, ARRAY_AGG (ime || "|| starost) kot osebne podatke OD osebe GROUP BY id ORDER BY id;



Primer 02:

Razmislite o novo ustvarjeni tabeli "Zaposleni" v okviru "testa" baze podatkov, ki ima pet stolpcev; »Id«, »ime«, »plača«, »starost« in »e-pošta«. V tabeli so shranjeni vsi podatki o 5 zaposlenih v podjetju. V tem primeru bomo s posebnim znakom '-' združili dve polji, namesto da bi uporabili presledek, medtem ko uporabljamo stavka GROUP BY in ORDER BY.

>> IZBERI * OD zaposlenega;

Podatke dveh stolpcev, "ime" in "e-pošta", združimo v matriko, medtem ko med njimi uporabljamo '-'. Tako kot prej tudi stolpec »id« izrazito izluščimo. Rezultati združenega stolpca bodo med izvajanjem prikazani kot "emp". Niz rezultatov bo najprej sestavil "id" osebe, nato pa bo organiziran v naraščajočem vrstnem redu stolpca "id". Poskusimo zelo podoben ukaz v lupini z manjšimi spremembami in si oglejmo posledice. Iz spodnjega rezultata ste pridobili ločeno matriko za vsako povezano ime-e-poštno vrednost, prikazano na sliki, medtem ko je znak '-' uporabljen v vsaki vrednosti.

>> IZBERI id, ARRAY_AGG (ime || '-' || e-pošta) KAKO EM FROM Employee GROUP BY id ORDER BY id;

Uporaba ARRAY_AGG v več stolpcih brez klavzule ORDER BY:

Preizkusite lahko tudi metodo ARRAY_AGG v kateri koli tabeli, ne da bi uporabili klavzuli ORDER BY in GROUP BY. Predpostavimo, da je na novo ustvarjena tabela "igralec" v vašem "testu" stare baze podatkov imela tri stolpce; “Id”, “fname” in “lname”. Tabela vsebuje podatke o igralčevih imenih in priimkih ter njihovih ID-jih.

>> IZBERI * IZ igralca;

Torej združite dva stolpca "fname" in "lname" na seznamu matrik, medtem ko med njimi uporabite presledek, enako kot v zadnjih dveh primerih. Stolpca 'id' nismo jasno odstranili in v poizvedbi SELECT uporabljamo funkcijo ARRAY_AGG. Nastali stolpec, povezan z matriko, bo predstavljen kot "igralci". Preizkusite spodnjo poizvedbo v ukazni lupini in si oglejte nastalo matriko. Pridobili smo eno matriko s predstavljeno združeno vrednostjo ime-e-pošta, ločeno z vejico od rezultata.

Zaključek:

Končno ste že skoraj zaključili z izvajanjem večine primerov, potrebnih za razumevanje zbirne metode ARRAY_AGG. Preizkusite jih več na svojem koncu za boljše razumevanje in znanje.

Kako prikazati števec FPS v igrah Linux
Linux gaming je dobil velik zagon, ko je Valve leta 2012 napovedal podporo Linuxu za odjemalca Steam in njihove igre. Od takrat se je veliko AAA in in...
Kako prenesti in igrati Sid Meier's Civilization VI v Linuxu
Uvod v igro Civilization 6 je sodoben pogled na klasični koncept, uveden v seriji iger Age of Empires. Ideja je bila dokaj preprosta; začeli bi v zelo...
Kako namestiti in igrati Doom v Linuxu
Uvod v Doom Serija Doom je nastala v devetdesetih letih po izidu prvotnega Dooma. Bil je takojšen hit in od takrat naprej je serija iger prejela števi...