PostgreSQL

Ako používať funkciu PostgreSQL ARRAY_AGG?

Ako používať funkciu PostgreSQL ARRAY_AGG?
Metóda agregácie ARRAY_AGG () je jednou z metód používaných v PostgreSQL, ktorá prijíma niekoľko vstupných hodnôt a spája ich do poľa vrátane hodnôt NULL. Vráti pole s každou hodnotou zo vstupnej skupiny ako súčasť. Na zoradenie sady výsledkov pomocou funkcie PostgreSQL ARRAY_AGG budete používať frázu ORDER BY. V prípade potreby môžete tiež použiť klauzulu WHERE.

Aby ste pochopili agregovanú metódu ARRAY_Agg (), musíte vykonať niekoľko príkladov. Za týmto účelom otvorte shell príkazového riadku PostgreSQL. Ak chcete zapnúť druhý server, urobte tak uvedením jeho názvu. V opačnom prípade nechajte priestor prázdny a stlačte tlačidlo Enter, aby ste preskočili na databázu. Ak chcete použiť predvolenú databázu, napr.g., Postgres, potom ho nechajte tak, ako je, a stlačte kláves Enter; v opačnom prípade napíšte názov databázy, napr.g., „Test“, ako je znázornené na obrázku nižšie. Ak chcete použiť iný port, vypíšte ho, inak ho nechajte tak, ako je, a pokračujte klepnutím na Enter. Ak chcete prepnúť na iné používateľské meno, požiada vás o pridanie používateľského mena. Ak chcete, zadajte používateľské meno, inak stlačte iba kláves „Enter“. Nakoniec musíte zadať svoje súčasné používateľské heslo, aby ste mohli začať používať príkazový riadok s konkrétnym používateľom, ako je uvedené nižšie. Po úspešnom zadaní všetkých požadovaných informácií môžete vyraziť.

Použitie ARRAY_AGG na jednom stĺpci:

Zvážte tabuľku „osoba“ v databáze „test“, ktorá má tri stĺpce; „Id“, „meno“ a „vek“. Stĺpec „id“ obsahuje ID všetkých osôb. Zatiaľ čo pole „meno“ obsahuje mená osôb a stĺpec „vek“ vek všetkých osôb.

>> VYBERTE * OD OSOBY;

V závislosti od režijnej tabuľky musíme použiť agregovanú metódu ARRAY_AGG na vrátenie zoznamu polí všetkých mien tabuľky cez stĺpec „name“. S týmto musíte použiť funkciu ARRAY_AGG () v dotaze SELECT na získanie výsledku vo forme poľa. Vyskúšajte uvedený dotaz vo svojom príkazovom shell a získajte výsledok. Ako vidíte, máme nižšie uvedený výstupný stĺpec „array_agg“, ktorého názvy sú uvedené v poli pre ten istý dopyt.

>> SELECT ARRAY_AGG (meno) OD osoby;

Použitie ARRAY_AGG na viacerých stĺpcoch s klauzulou ORDER BY:

Príklad 01:

Ak použijete funkciu ARRAY_AGG na viac stĺpcov pri použití klauzuly ORDER BY, zvážte tú istú tabuľku „osoba“ v rámci databázy „test“, ktorá má tri stĺpce; „Id“, „meno“ a „vek“. V tomto príklade budeme používať klauzulu GROUP BY.

>> VYBERTE * OD OSOBY;

Zreťazili sme výsledok dotazu SELECT do zoznamu polí pomocou dvoch stĺpcov „name“ a „age“. V tomto príklade používame priestor ako špeciálny znak, ktorý sa doteraz používal na zreťazenie oboch týchto stĺpcov. Na druhej strane sme načítali stĺpec „id“ osobitne. Výsledok zreťazeného poľa sa za behu zobrazí v stĺpci „persondata“. Sada výsledkov bude najskôr zoskupená podľa „id“ osoby a zoradená vzostupne podľa poľa „id“. Vyskúšame nasledujúci príkaz v prostredí shell a uvidíme výsledky sami. Ako vidíte, na obrázku nižšie máme samostatné pole pre každú zreťazenú hodnotu názvu a veku.

>> SELECT id, ARRAY_AGG (name || "|| age) ako persondata FROM person GROUP BY id ORDER BY id;



Príklad 02:

Zvážte novovytvorenú tabuľku „Zamestnanec“ v rámci „testu“ databázy, ktorá má päť stĺpcov; „Id“, „meno“, „plat“, „vek“ a „e-mail“. V tabuľke sú uložené všetky údaje o 5 zamestnancoch pracujúcich v spoločnosti. V tomto príklade použijeme špeciálny znak '-' na zreťazenie dvoch polí namiesto použitia medzery pri použití klauzúl GROUP BY a ORDER BY.

>> VYBERTE * OD zamestnanca;

Zreťazíme údaje dvoch stĺpcov, „name“ a „email“ do poľa, pričom medzi nimi použijeme znak „-“. Rovnako ako predtým, aj my extrahujeme zreteľne stĺpec „id“. Výsledky zreťazeného stĺpca sa za behu zobrazia ako „emp“. Sada výsledkov bude najskôr zhromaždená podľa „id“ osoby a potom bude usporiadaná vo vzostupnom poradí podľa stĺpca „id“. Pokúsme sa o veľmi podobný príkaz v shell s malými zmenami a uvidíme, aké následky to bude mať. Z výsledku uvedeného nižšie ste získali odlišné pole pre každú zreťazenú hodnotu názvu a e-mailu uvedenú na obrázku, zatiaľ čo v každej hodnote sa používa znak „-“.

>> SELECT id, ARRAY_AGG (name || '-' || email) AS emp FROM Employee GROUP BY id ORDER BY id;

Použitie ARRAY_AGG na viacerých stĺpcoch bez klauzuly ORDER BY:

Môžete tiež vyskúšať metódu ARRAY_AGG na ľubovoľnej tabuľke bez použitia klauzúl ORDER BY a GROUP BY. Predpokladajme, že vo vašej starej databáze je „test“ novo vytvorený „herec“, ktorý má tri stĺpce; „Id“, „fname“ a „lname“. Tabuľka obsahuje údaje o krstných menách a priezviskách herca a ich identifikačných číslach.

>> VYBERTE * OD herca;

Zreťazte dva stĺpce „fname“ a „lname“ v zozname polí, pričom medzi nimi používajte medzeru, rovnako ako v posledných dvoch príkladoch. Výrazne sme nevyradili stĺpec „id“ a v dotaze SELECT sme používali funkciu ARRAY_AGG. Výsledný zreťazený stĺpec bude prezentovaný ako „herci“. Vyskúšajte nižšie uvedený dotaz v príkazovom paneli a nahliadnite do výsledného poľa. Načítali sme jedno pole s prezentovanou zreťazenou hodnotou názvu a e-mailu, oddelené od výsledku čiarkou.

Záver:

Nakoniec ste takmer hotoví pri vykonávaní väčšiny príkladov potrebných na pochopenie agregačnej metódy ARRAY_AGG. Vyskúšajte ich viac na svojom konci, aby ste lepšie pochopili a poznali.

Tlačidlo ľavého kliknutia myši nefunguje v systéme Windows 10
Ak používate samostatnú myš s prenosným počítačom alebo stolovým počítačom, ale nefunguje ľavé tlačidlo myši vo Windows 10/8/7 z nejakého dôvodu uvádz...
Kurzor pri písaní v systéme Windows 10 skáče alebo sa pohybuje náhodne
Ak zistíte, že kurzor myši skáče alebo sa pohybuje sám, automaticky a náhodne pri písaní na notebooku alebo počítači so systémom Windows, niektoré z t...
Ako zmeniť smer posúvania myši a touchpadu v systéme Windows 10
Myš a TouchpadNielenže uľahčujú výpočty, ale sú aj efektívnejšie a menej časovo náročné. Nemôžeme si predstaviť život bez týchto zariadení, ale je pra...