„PostgreSQL“

Kaip naudoti „PostgreSQL ARRAY_AGG“ funkciją?

Kaip naudoti „PostgreSQL ARRAY_AGG“ funkciją?
Suvestinis metodas ARRAY_AGG () yra vienas iš „PostgreSQL“ naudojamų metodų, kuris paima kelias įvesties reikšmes ir sujungia jas į masyvą, įskaitant NULL reikšmes. Jis grąžina masyvą su kiekviena įvesties grupės reikšme kaip dalį. Norėdami rūšiuoti rezultatų rinkinį naudodami funkciją „PostgreSQL ARRAY_AGG“, naudosite frazę UŽSAKYTI. Jei reikia, taip pat galite naudoti sąlygą WHERE.

Norėdami suprasti suvestinį metodą ARRAY_Agg (), turite atlikti keletą pavyzdžių. Šiuo tikslu atidarykite „PostgreSQL“ komandinės eilutės apvalkalą. Jei norite įjungti kitą serverį, nurodykite jo pavadinimą. Kitu atveju palikite tuščią vietą ir paspauskite mygtuką Enter, kad pereitumėte į duomenų bazę. Jei norite naudoti numatytąją duomenų bazę, el.g., „Postgres“, palikite jį tokį, koks yra, ir paspauskite „Enter“; priešingu atveju parašykite duomenų bazės pavadinimą, el.g., „Testas“, kaip parodyta paveikslėlyje žemiau. Jei norite naudoti kitą prievadą, užrašykite jį, kitaip tiesiog palikite jį tokį, koks yra, ir bakstelėkite Enter, kad tęstumėte. Jis paprašys pridėti vartotojo vardą, jei norite pereiti prie kito vartotojo vardo. Jei norite, pridėkite vartotojo vardą, kitaip tiesiog paspauskite „Enter“. Galų gale turite pateikti savo dabartinį vartotojo slaptažodį, kad pradėtumėte naudoti komandinę eilutę naudodami tą konkretų vartotoją, kaip nurodyta toliau. Sėkmingai įvedę visą reikiamą informaciją, jums viskas gerai.

ARRAY_AGG naudojimas viename stulpelyje:

Apsvarstykite lentelę „asmuo“ duomenų bazėje „testas“, kurioje yra trys stulpeliai; „Id“, „name“ ir „age“. Stulpelyje „id“ yra visų asmenų ID. Lauke „vardas“ yra asmenų vardai ir stulpelis „amžius“ - visų asmenų amžius.

>> PASIRINKTI * IŠ asmens;

Priklausomai nuo pridėtinės lentelės, norėdami grąžinti visų lentelės pavadinimų masyvo sąrašą naudodami stulpelį „pavadinimas“, turime taikyti bendrą ARRAY_AGG metodą. Norėdami tai gauti, masyvo formoje turite naudoti ARRAY_AGG () funkciją SELECT užklausoje. Išbandykite nurodytą užklausą savo komandos apvalkale ir gaukite rezultatą. Kaip matote, mes turime toliau pateiktą išvesties stulpelį „array_agg“, kurio vardai yra matricoje nurodyti tam pačiam užklausai.

>> PASIRINKITE ARRAY_AGG (vardas) IŠ asmens;

ARRAY_AGG naudojimas keliuose stulpeliuose su sąlyga UŽSAKYTI:

01 pavyzdys:

Taikydami ARRAY_AGG funkciją keliems stulpeliams naudodami sąlygą ORDER BY, apsvarstykite tą pačią lentelę „asmuo“ duomenų bazės „teste“, turintį tris stulpelius; „Id“, „name“ ir „age“. Šiame pavyzdyje naudosime sąlygą GROUP BY.

>> PASIRINKTI * IŠ asmens;

Mes sujungėme SELECT užklausos rezultatą masyvų sąraše, naudodami du stulpelius „vardas“ ir „amžius“. Šiame pavyzdyje mes naudojome erdvę kaip specialųjį simbolį, kuris iki šiol buvo naudojamas sujungiant abu šiuos stulpelius. Kita vertus, stulpelį „id“ parsivežėme atskirai. Sujungto masyvo rezultatas bus rodomas stulpelyje „persondata“ vykdymo metu. Rezultatų rinkinys pirmiausia bus sugrupuotas pagal asmens „id“ ir surūšiuotas didėjančia lauko „id“ tvarka. Pabandykime žemiau pateiktą komandą apvalkale ir patys pamatysite rezultatus. Galite pamatyti atskirą masyvą kiekvienai vardo ir amžiaus susietai vertei paveikslėlyje žemiau.

>> SELECT ID, ARRAY_AGG (vardas || "|| amžius) kaip asmens duomenys IŠ asmens GRUPĖ PAGAL ID UŽSAKYTI ID;



02 pavyzdys:

Apsvarstykite naujai sukurtą lentelę „Darbuotojas“ duomenų bazės „teste“ su penkiais stulpeliais; „ID“, „vardas“, „atlyginimas“, „amžius“ ir „el. Paštas“. Lentelėje saugomi visi duomenys apie 5 įmonėje dirbančius darbuotojus. Šiame pavyzdyje naudosime specialųjį simbolį „-“, kad sujungtume du laukus, užuot naudoję tarpą, naudodami sakinius „GROUP BY“ ir „ORDER BY“.

>> PASIRINKTI * IŠ darbuotojo;

Mes sujungiame dviejų stulpelių „vardas“ ir „el. Paštas“ duomenis masyve, o tarp jų naudojame „-“. Kaip ir anksčiau, mes aiškiai išskleidžiame stulpelį „id“. Sujungtų stulpelių rezultatai eigos metu bus rodomi kaip „emp“. Rezultatų rinkinį pirmiausia surinks asmens „id“, o vėliau jis bus išdėstytas didėjančia „id“ stulpelio tvarka. Pabandykime padaryti labai panašią apvalkalo komandą su nedideliais pakeitimais ir pamatyti pasekmes. Iš žemiau pateikto rezultato jūs įgijote atskirą masyvą kiekvienai paveikslėlyje pateiktai vardo ir el. Pašto sujungtai vertei, o ženklas „-“ naudojamas kiekvienoje vertėje.

>> PASIRINKTI ID, ARRAY_AGG (vardas || '-' || el. Paštas) KAIP EMP NUO Darbuotojų GRUPĖS PAGAL id ID UŽSAKYTI pagal ID;

„ARRAY_AGG“ naudojimas keliuose stulpeliuose be sąlygos „ORDER BY“:

ARRAY_AGG metodą taip pat galite išbandyti bet kurioje lentelėje, nenaudodami sąlygų ORDER BY ir GROUP BY. Tarkime, kad naujai sukurta lentelė „aktorius“ jūsų senoje duomenų bazėje „testas“ turi tris stulpelius; „Id“, „fname“ ir „lname“. Lentelėje pateikiami duomenys apie aktoriaus vardus ir pavardes bei jų ID.

>> PASIRINKTI * IŠ aktoriaus;

Taigi, masyvo sąraše sujunkite du stulpelius „fname“ ir „lname“, tuo tarpu naudodami tarpą tarp jų, kaip ir paskutiniuose dviejuose pavyzdžiuose. Mes aiškiai neišėmėme stulpelio „id“, o „SELECT“ užklausoje naudojome funkciją ARRAY_AGG. Gauta masyvo sujungta stulpelis bus pateiktas kaip „aktoriai“. Išbandykite žemiau nurodytą užklausą komandos apvalkale ir sužinokite gautą masyvą. Mes gavome vieną masyvą, kuriame pateikta vardo ir el. Pašto adreso vertė, atskirta kableliu nuo rezultato.

Išvada:

Galiausiai, jūs beveik baigėte vykdyti daugumą pavyzdžių, reikalingų suprasti ARRAY_AGG suvestinį metodą. Išbandykite daugiau jų, kad geriau suprastumėte ir žinotumėte.

Kaip pakeisti pelės ir jutiklinių plokščių slinkimo kryptį sistemoje „Windows 10“
Pelė ir Jutiklinė dalisTai ne tik palengvina skaičiavimus, bet ir efektyvesnį bei mažiau laiko reikalaujantį. Mes neįsivaizduojame gyvenimo be šių pri...
Kaip pakeisti pelės žymeklio ir žymeklio dydį, spalvą ir schemą sistemoje „Windows 10“
„Windows 10“ pelės žymeklis ir žymeklis yra labai svarbūs operacinės sistemos aspektai. Tai galima pasakyti ir apie kitas operacines sistemas, taigi, ...
Nemokami ir atvirojo kodo žaidimų varikliai, skirti kurti „Linux“ žaidimus
Šiame straipsnyje bus pateiktas nemokamų ir atvirojo kodo žaidimų variklių, kurie gali būti naudojami kuriant 2D ir 3D žaidimus „Linux“, sąrašas. Toki...