PostgreSQL

A PostgreSQL ARRAY_AGG függvény használata?

A PostgreSQL ARRAY_AGG függvény használata?
Az ARRAY_AGG () összesített módszer a PostgreSQL-ben használt egyik módszer, amely több bemeneti értéket vesz fel és tömbbe összefűz, beleértve a NULL értékeket. Egy tömböt ad vissza az input csoport minden értékével. A beállított eredmény rendezéséhez a PostgreSQL ARRAY_AGG függvényen keresztül a ORDER BY kifejezést kell használni. Szükség esetén használhatja a WHERE záradékot is.

Az összesített ARRAY_Agg () metódus megértéséhez több példát kell végrehajtania. Erre a célra nyissa meg a PostgreSQL parancssori héjat. Ha be akarja kapcsolni a másik szervert, tegye meg a nevének megadásával. Ellenkező esetben hagyja üresen a helyet, és nyomja meg az Enter gombot az adatbázishoz való ugráshoz. Ha az alapértelmezett adatbázist szeretné használni, pl.g., Postgres, majd hagyja úgy, ahogy van, és nyomja meg az Enter billentyűt; különben írja be az adatbázis nevét, pl.g., „Teszt”, amint az az alábbi képen látható. Ha másik portot szeretne használni, írja ki, különben csak hagyja úgy, ahogy van, és a folytatáshoz érintse meg az Entert. Megkéri Önt, hogy adja meg a felhasználónevet, ha másik felhasználónévre szeretne váltani. Adja meg a felhasználónevet, ha akarja, ellenkező esetben nyomja meg az „Enter” gombot. Végül meg kell adnia a jelenlegi felhasználói jelszavát, hogy elkezdhesse használni a parancssort az adott felhasználó használatával, az alábbiak szerint. Az összes szükséges információ sikeres beírása után már indulhat is.

Az ARRAY_AGG használata egyetlen oszlopon:

Tekintsük az adatbázis „teszt” „személy” tábláját, amelynek három oszlopa van; „Id”, „name” és „age”. Az „id” oszlop tartalmazza az összes személy azonosítóját. Míg a „név” mező tartalmazza a személyek nevét és az „életkor” oszlop az összes személy életkorát.

>> SELECT * FROM személy;

Az általános táblától függően az összesített ARRAY_AGG metódust kell alkalmaznunk, hogy a „name” oszlopon keresztül a táblázat összes nevének tömblistáját visszaadjuk. Ezzel az ARRAY_AGG () függvényt kell használnia a SELECT lekérdezésben az eredmény tömb formájában történő lekéréséhez. Próbálkozzon a megadott lekérdezéssel a parancssorában, és kapja meg az eredményt. Amint láthatja, az alábbi „array_agg” kimeneti oszlop rendelkezik, amelynek nevei egy tömbben szerepelnek ugyanarra a lekérdezésre.

>> SELECT ARRAY_AGG (név) FROM személytől;

Az ARRAY_AGG használata több oszlopban ORDER BY záradékkal:

01. példa:

Az ARRAY_AGG függvény több oszlopra történő alkalmazása az ORDER BY záradék használata közben tekintse ugyanazt a táblázatot „személynek” az adatbázis „tesztjén” belül, amelynek három oszlopa van; „Id”, „name” és „age”. Ebben a példában a GROUP BY záradékot fogjuk használni.

>> SELECT * FROM személy;

Összekötöttük a SELECT lekérdezés eredményét egy tömb listában, miközben a két oszlopot „név” és „életkor” használtuk. Ebben a példában a szóközt használtuk speciális karakterként, amelyet eddig mindkét oszlop összefűzésére használtak. Másrészt külön-külön hoztuk le az „id” oszlopot. A összefűzött tömb eredménye a futási időben a „persondata” oszlopban jelenik meg. Az eredménykészletet először a személy „id” -jével csoportosítja, és az „id” mező növekvő sorrendjében rendezi. Próbáljuk ki az alábbi parancsot a shellben, és nézd meg magad az eredményeket. Láthatja, hogy az alábbi képen minden név-kor összefűzött értékhez külön tömböt kaptunk.

>> SELECT ID, ARRAY_AGG (név || "|| életkor), mint személyek FROM személy CSOPORT ID szerint RENDELÉS ID alapján;



02. példa:

Vegyünk egy újonnan létrehozott „Alkalmazott” táblázatot az adatbázis „tesztjén” belül, amelynek öt oszlopa van; „Id”, „név”, „fizetés”, „életkor” és „e-mail”. A táblázat az összes adatot tárolja a vállalatban dolgozó 5 alkalmazottról. Ebben a példában a „-” speciális karaktert fogjuk használni két mező összefűzésére, ahelyett, hogy szóközt használnánk, miközben a GROUP BY és az ORDER BY záradékot használjuk.

>> KIVÁLASZTÁS * FROM Alkalmazottól;

Összekapcsoljuk két oszlop, a "név" és az "e-mail" adatait egy tömbben, miközben a "-" szót használjuk közöttük. A korábbiakhoz hasonlóan egyértelműen kivonjuk az „id” oszlopot. A összefűzött oszlop eredményei futás közben „emp” -ként jelennek meg. Az eredményhalmazt először a személy azonosítója állítja össze, majd az „id” oszlop növekvő sorrendjében rendezi. Próbáljunk meg egy nagyon hasonló parancsot a héjban, kisebb változtatásokkal, és lássuk a következményeket. Az alábbi eredményből külön tömböt szerzett a képen látható minden név-e-mail összefűzött értékhez, míg a '-' jelet minden értékben használják.

>> SELECT id, ARRAY_AGG (név || '-' || e-mail) AS emp FROM Munkavállalói CSOPORTBAN ID alapján ORDER BY id;

Az ARRAY_AGG használata több oszlopon ORDER BY záradék nélkül:

Bármelyik táblán kipróbálhatja az ARRAY_AGG metódust az ORDER BY és a GROUP BY záradék használata nélkül. Tegyük fel, hogy a régi adatbázisában egy újonnan létrehozott „színész” a „teszt” három oszlopból áll; „Id”, „fname” és „lname”. A táblázat a színész keresztneveiről és vezetékneveiről, valamint azok azonosítóiról tartalmaz adatokat.

>> SELECT * FROM színész;

Összefűzzük tehát a tömblistában a két „fname” és „lname” oszlopot, miközben szóközöket használunk közöttük, ugyanúgy, mint az utolsó két példában. Nem vettük ki egyértelműen az „id” oszlopot, és az ARRAY_AGG függvényt a SELECT lekérdezésben használták. A kapott tömb összefűzött oszlop „szereplőként” jelenik meg. Próbálkozzon az alább megadott lekérdezéssel a parancssorban, és engedje bepillantást a kapott tömbbe. Egyetlen tömböt kaptunk, amelyben a név-e-mail összefűzött érték szerepel, vesszővel elválasztva az eredménytől.

Következtetés:

Végül már majdnem elkészült az ARRAY_AGG összesítési módszer megértéséhez szükséges legtöbb példa. Próbáljon ki többet a végén a jobb megértés és tudás érdekében.

SuperTuxKart Linuxhoz
A SuperTuxKart egy nagyszerű cím, amelynek célja, hogy ingyenesen hozza el a Mario Kart élményét Linux rendszerén. Elég kihívást jelentő és szórakozta...
Csata a Wesnoth bemutatóért
A Battle for Wesnoth az egyik legnépszerűbb nyílt forráskódú stratégiai játék, amelyet jelenleg játszhatsz. Ez a játék nem csak nagyon hosszú ideje fe...
0 A.D. Bemutató
A sok stratégiai játék közül 0 A.D. átfogó címként és nagyon mély, taktikus játékként képes kiemelkednie annak ellenére, hogy nyílt forráskódú. A játé...