PostgreSQL

Kuidas kasutada funktsiooni PostgreSQL ARRAY_AGG?

Kuidas kasutada funktsiooni PostgreSQL ARRAY_AGG?
Koondamismeetod ARRAY_AGG () on üks PostgreSQL-is kasutatavatest meetoditest, mis võtab mitu sisendväärtust ja liidab need massiiviks, sealhulgas NULL-väärtused. See tagastab massiivi koos iga väärtusega sisendrühmast. Funktsiooni PostgreSQL ARRAY_AGG kaudu seatud tulemuste sorteerimiseks kasutate fraasi ORDER BY. Vajaduse korral saate kasutada ka klauslit WHERE.

Kogutud ARRAY_Agg () meetodi mõistmiseks peate sooritama mitu näidet. Selleks avage käsurea kest PostgreSQL. Kui soovite teise serveri sisse lülitada, tehke seda, sisestades selle nime. Muul juhul jätke tühi koht ja vajutage nuppu Enter, et hüpata andmebaasi. Kui soovite kasutada vaikebaasi, e.g., Postgres, siis jäta see nii, nagu see on ja vajuta Enter; muul juhul kirjutage andmebaasi nimi, nt.g., “Test”, nagu on näidatud alloleval pildil. Kui soovite kasutada mõnda muud pordi, siis kirjutage see välja, vastasel juhul jätke see lihtsalt selliseks ja puudutage jätkamiseks sisestusklahvi Enter. Kui soovite teisele kasutajanimele üle minna, palutakse teil lisada kasutajanimi. Kui soovite, lisage kasutajanimi, vastasel juhul vajutage lihtsalt sisestusklahvi. Lõpuks peate sisestama oma praeguse kasutaja parooli, et alustada käsurea kasutamist selle konkreetse kasutaja abil, nagu allpool. Pärast kogu vajaliku teabe edukat sisestamist on teil hea minna.

ARRAY_AGG kasutamine ühel veerul:

Vaatleme andmebaasi „test” tabelit „inimene”, millel on kolm veergu; „Id”, „nimi” ja „vanus”. Veerus „id“ on kõigi isikute ID-d. Kui väli „nimi” sisaldab isikute nimesid ja veerg „vanus” kõigi isikute vanuseid.

>> VALI * INIMESELT;

Sõltuvalt üldtabelist peame rakendama ARRAY_AGG-i koondmeetodit, et tagastada tabeli kõigi nimede massiivi loend veeru „name” kaudu. Sellega peate massiivi kujul tulemuse toomiseks kasutama päringu SELECT funktsiooni ARRAY_AGG (). Proovige oma käsu kestas märgitud päringut ja saate tulemuse. Nagu näete, on meil allpool väljundveerg “array_agg”, mille nimed on massiivi sees sama päringu jaoks.

>> Valige ARRAY_AGG (nimi) inimeselt;

ARRAY_AGG-i kasutamine mitmel veerul, mille klausel on ORDER BY:

Näide 01:

Rakendades ARRAY_AGG funktsiooni mitmele veerule, kasutades samal ajal klauslit ORDER BY, kaaluge sama veeru andmebaasi "test" sama tabeli "inimene"; „Id”, „nimi” ja „vanus”. Selles näites kasutame klauslit GROUP BY.

>> VALI * INIMESELT;

Oleme ühendanud SELECT päringu tulemuse massiivide loendis, kasutades kahte veergu "nimi" ja "vanus". Selles näites oleme erimärgina kasutanud ruumi, mida on siiani kasutatud mõlema veeru liitmiseks. Teiselt poolt oleme hankinud veeru „id” eraldi. Lühendatud massiivi tulemus kuvatakse veerus “persondata” jooksmise ajal. Tulemuskomplekt rühmitatakse kõigepealt inimese „id“ järgi ja sorteeritakse välja „id“ kasvavas järjekorras. Proovime kestas allpool olevat käsku ja näete tulemusi ise. Näete, et meil on eraldi massiiv iga alloleval pildil oleva nime-vanuse liidetud väärtuse jaoks.

>> SELECT id, ARRAY_AGG (nimi || "|| vanus) isiksusena ISIKULT RÜHM ID järgi TELLI ID järgi;



Näide 02:

Vaatleme andmebaasi „testi” vastloodud tabelit „Töötaja”, millel on viis veergu; „Id”, „nimi”, „palk”, „vanus” ja „e-post”. Tabelisse on salvestatud kõik andmed ettevõttes töötavate viie töötaja kohta. Selles näites kasutame kahe välja välja liitmiseks erimärki "-", selle asemel, et kasutada klausleid GROUP BY ja ORDER BY, kasutades tühikut.

>> VALI * FROM töötaja;

Me liidame kahe veeru andmed, nimega ja meiliga, kasutades nende vahel tähist "-". Samamoodi nagu varem, eraldame veeru „id” selgelt. Liidetud veeru tulemused kuvatakse käitamise ajal tähisega “emp”. Tulemuskomplekti paneb esmalt kokku isiku „id” ja seejärel korrastatakse see veeru „id” kasvavas järjekorras. Proovime väikeste muudatustega kestas väga sarnast käsku ja näeme tagajärgi. Alltoodud tulemuse põhjal olete omandanud iga pildil toodud nime-e-posti liidetud väärtuse jaoks eraldi massiivi, samas kui igas väärtuses kasutatakse märki '-'.

>> SELECT id, ARRAY_AGG (nimi || '-' || e-posti aadress) EMP-lt TÖÖTAJATE RÜHMAST ID järgi TELLI ID järgi;

ARRAY_AGG-i kasutamine mitmel veerul ilma ORDER BY -lauseta:

Samuti võite proovida ARRAY_AGG-meetodit mis tahes tabelis, ilma et kasutaksite klausleid ORDER BY ja GROUP BY. Oletame, et teie vana andmebaasi „testis“ on kolm veergu vastloodud tabel „näitleja“; „Id”, „fname” ja „lname”. Tabel sisaldab andmeid näitleja ees- ja perekonnanimede ning nende ID-de kohta.

>> VALI * näitlejalt;

Nii ühendage massiivide loendis kaks veergu "fname" ja "lname", kasutades nende vahel tühikut, nagu teete kahes viimases näites. Me pole veergu id selgelt välja võtnud ja andee on kasutanud funktsiooni ARRAY_AGG SELECT päringus. Saadud massiivi liidetud veerg esitatakse näitlejatena. Proovige allpool märgitud päringut käsukooris ja heitke pilk saadud massiivile. Oleme toonud ühe massiivi, mille nimi ja e-post on liidetud väärtusega, eraldatuna tulemusest komaga.

Järeldus:

Lõpuks olete peaaegu valmis täitma enamiku ARRAY_AGG koondmeetodi mõistmiseks vajalikke näiteid. Parema mõistmise ja teadmiste saamiseks proovige neid lõpus rohkem.

WinMouse võimaldab teil kohandada ja parandada hiirekursori liikumist Windowsi arvutis
Kui soovite oma hiirekursori vaikefunktsioone paremaks muuta, kasutage vabavara WinMouse. See lisab rohkem funktsioone, mis aitavad teil alandlikust h...
Hiire vasakklõps nupp ei tööta Windows 10-s
Kui kasutate oma sülearvuti või lauaarvutiga spetsiaalset hiirt, kuid hiire vasakklõps nupp ei tööta mingil põhjusel operatsioonisüsteemis Windows 10/...
Kursor hüppab või liigub juhuslikult Windows 10-s kirjutamise ajal
Kui leiate, et hiire kursor hüppab või liigub Windowsi sülearvutisse või arvutisse kirjutades automaatselt, juhuslikult, võivad mõned neist soovituste...