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.