PostgreSQL

Jak používat funkci PostgreSQL ARRAY_AGG?

Jak používat funkci PostgreSQL ARRAY_AGG?
Metoda agregace ARRAY_AGG () je jednou z metod používaných v PostgreSQL, která přebírá několik vstupních hodnot a zřetězuje je do pole, včetně hodnot NULL. Vrátí pole s každou hodnotou ze vstupní skupiny jako součást. Chcete-li setřídit sadu výsledků pomocí funkce PostgreSQL ARRAY_AGG, budete používat frázi ORDER BY. V případě potřeby můžete také použít klauzuli WHERE.

Abyste pochopili agregovanou metodu ARRAY_Agg (), musíte provést několik příkladů. Za tímto účelem otevřete prostředí příkazového řádku PostgreSQL. Pokud chcete zapnout druhý server, uveďte jeho název. V opačném případě nechte místo prázdné a stisknutím tlačítka Enter skočíte na databázi. Pokud chcete použít výchozí databázi, např.G., Postgres, poté jej nechte beze změny a stiskněte klávesu Enter; jinak napište název databáze, např.G., „Test“, jak je znázorněno na obrázku níže. Chcete-li použít jiný port, vypište jej, jinak jej nechte tak, jak je, a pokračujte klepnutím na Enter. Pokud chcete přepnout na jiné uživatelské jméno, požádá vás o přidání uživatelského jména. Přidejte uživatelské jméno, pokud chcete, jinak jednoduše stiskněte „Enter“. Nakonec musíte zadat své aktuální uživatelské heslo, abyste mohli začít používat příkazový řádek pomocí konkrétního uživatele, jak je uvedeno níže. Po úspěšném zadání všech požadovaných informací můžete vyrazit.

Použití ARRAY_AGG na jednom sloupci:

Zvažte tabulku „osoba“ v databázi „test“ se třemi sloupci; „Id“, „name“ a „age“. Sloupec „id“ obsahuje ID všech osob. Zatímco pole „jméno“ obsahuje jména osob a sloupec „věk“ věk všech osob.

>> VYBRAT * OD osoby;

V závislosti na režijní tabulce musíme použít agregovanou metodu ARRAY_AGG k vrácení seznamu polí všech jmen tabulky pomocí sloupce „name“. S tímto musíte použít funkci ARRAY_AGG () v dotazu SELECT k načtení výsledku ve formě pole. Vyzkoušejte uvedený dotaz v příkazovém prostředí a získejte výsledek. Jak vidíte, máme níže uvedený výstupní sloupec „array_agg“, jehož jména jsou uvedena v poli pro stejný dotaz.

>> SELECT ARRAY_AGG (jméno) OD osoby;

Použití ARRAY_AGG na více sloupcích s klauzulí ORDER BY:

Příklad 01:

Při použití funkce ARRAY_AGG na více sloupců při použití klauzule ORDER BY zvažte stejnou „osobu“ tabulky v rámci databáze „test“ se třemi sloupci; „Id“, „name“ a „age“. V tomto příkladu budeme používat klauzuli GROUP BY.

>> VYBRAT * OD osoby;

Zřetězili jsme výsledek dotazu SELECT do seznamu matic při použití dvou sloupců „name“ a „age“. V tomto příkladu používáme mezeru jako speciální znak, který se doposud používal ke zřetězení obou těchto sloupců. Na druhou stranu jsme načítali sloupec „id“ samostatně. Výsledek zřetězeného pole se za běhu zobrazí ve sloupci „persondata“. Sada výsledků bude nejprve seskupena podle „id“ osoby a seřazena vzestupně podle pole „id“. Vyzkoušejte níže uvedený příkaz v prostředí a podívejte se na výsledky sami. Na obrázku níže vidíte, že pro každou zřetězenou hodnotu názvu a věku máme samostatné pole.

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



Příklad 02:

Vezměme si nově vytvořenou tabulku „Zaměstnanec“ v rámci databáze „test“, která má pět sloupců; „Id“, „jméno“, „plat“, „věk“ a „e-mail“. V tabulce jsou uložena všechna data o 5 zaměstnancích pracujících ve společnosti. V tomto příkladu použijeme speciální znak '-' ke zřetězení dvou polí namísto použití mezery při použití klauzule GROUP BY a ORDER BY.

>> SELECT * FROM Employee;

Zřetězíme data dvou sloupců, „name“ a „email“ v ​​poli, přičemž mezi nimi používáme „-“. Stejně jako dříve zřetelně extrahujeme sloupec „id“. Výsledky zřetězeného sloupce se za běhu zobrazí jako „emp“. Sada výsledků bude nejprve sestavena podle „id“ osoby a poté bude uspořádána ve vzestupném pořadí podle sloupce „id“. Pokusme se o velmi podobný příkaz v shellu s malými změnami a uvidíme důsledky. Z níže uvedeného výsledku jste získali odlišné pole pro každou zřetězenou hodnotu názvu a e-mailu uvedenou na obrázku, zatímco v každé hodnotě je použit znak '-'.

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

Použití ARRAY_AGG na více sloupcích bez klauzule ORDER BY:

Můžete také vyzkoušet metodu ARRAY_AGG na libovolné tabulce bez použití klauzule ORDER BY a GROUP BY. Předpokládejme nově vytvořenou tabulku „herec“ ve staré databázi „test“ se třemi sloupci; „Id“, „fname“ a „lname“. Tabulka obsahuje údaje o křestních jménech a příjmeních herců a jejich ID.

>> VÝBĚR * OD herce;

Zřetězte dva sloupce „fname“ a „lname“ v seznamu polí, přičemž mezi nimi použijte mezeru, stejně jako v posledních dvou příkladech. Výrazně jsme nevyřadili sloupec „id“ a používáme funkci ARRAY_AGG v dotazu SELECT. Výsledný zřetězený sloupec pole bude prezentován jako „herci“. Zkuste níže uvedený dotaz v příkazovém prostředí a nahlédněte do výsledného pole. Načetli jsme jedno pole s prezentovanou zřetězenou hodnotou jméno-e-mail, oddělené čárkou od výsledku.

Závěr:

Nakonec jste téměř hotovi s prováděním většiny příkladů potřebných pro pochopení agregační metody ARRAY_AGG. Vyzkoušejte na konci více z nich, abyste získali lepší porozumění a znalosti.

Hry Zdarma a open source herní motory pro vývoj linuxových her
Zdarma a open source herní motory pro vývoj linuxových her
Tento článek pokryje seznam bezplatných a otevřených herních enginů, které lze použít pro vývoj 2D a 3D her v systému Linux. Existuje mnoho takových h...
Hry Výukový program Shadow of the Tomb Raider pro Linux
Výukový program Shadow of the Tomb Raider pro Linux
Shadow of the Tomb Raider je dvanáctý přírůstek do série Tomb Raider - série akčních adventur vytvořená Eidosem Montrealem. Tato hra byla docela dobře...
Hry Jak zvýšit FPS v Linuxu?
Jak zvýšit FPS v Linuxu?
FPS znamená Snímků za sekundu. Úkolem FPS je měřit snímkovou frekvenci při přehrávání videa nebo herních výkonech. Jednoduše řečeno, počet nepřerušova...