PostgreSQL

Kā izmantot funkciju PostgreSQL ARRAY_AGG?

Kā izmantot funkciju PostgreSQL ARRAY_AGG?
Apvienošanas metode ARRAY_AGG () ir viena no PostgreSQL izmantotajām metodēm, kas ņem vairākas ievades vērtības un apvieno tās masīvā, ieskaitot NULL vērtības. Tas atgriež masīvu ar katru vērtību no ievades grupas kā daļu. Lai kārtotu rezultātu kopu, izmantojot funkciju PostgreSQL ARRAY_AGG, jūs izmantosiet frāzi ORDER BY. Ja nepieciešams, varat izmantot arī klauzulu WHERE.

Lai saprastu apkopoto metodi ARRAY_Agg (), jums jāveic vairāki piemēri. Šim nolūkam atveriet komandrindas apvalku PostgreSQL. Ja vēlaties ieslēgt otru serveri, dariet to, norādot tā nosaukumu. Pretējā gadījumā atstājiet vietu tukšu un nospiediet pogu Enter, lai pārietu uz Database. Ja vēlaties izmantot noklusējuma datu bāzi, e.g., Postgres, pēc tam atstājiet to tādu, kāds tas ir, un nospiediet taustiņu Enter; pretējā gadījumā uzrakstiet datubāzes nosaukumu, piemēram,.g., “Tests”, kā parādīts attēlā zemāk. Ja vēlaties izmantot citu portu, izrakstiet to, pretējā gadījumā vienkārši atstājiet to tādu, kāds tas ir, un pieskarieties Enter, lai turpinātu. Ja vēlaties pārslēgties uz citu lietotājvārdu, jums tiks lūgts pievienot lietotājvārdu. Pievienojiet lietotājvārdu, ja vēlaties, pretējā gadījumā vienkārši nospiediet “Enter”. Galu galā jums ir jānorāda pašreizējā lietotāja parole, lai sāktu izmantot komandrindu, izmantojot konkrēto lietotāju, kā norādīts tālāk. Pēc veiksmīgas visas nepieciešamās informācijas ievadīšanas jums ir labi iet.

ARRAY_AGG izmantošana vienā kolonnā:

Apsveriet tabulu “persona” datu bāzes “testā”, kurā ir trīs kolonnas; “Id”, “name” un “age”. Kolonnā “id” ir visu personu ID. Kamēr laukā “vārds” ir personu vārdi un kolonnā “vecums” ir visu personu vecums.

>> SELECT * NO personas;

Atkarībā no augšējās tabulas mums ir jāpiemēro apkopotā metode ARRAY_AGG, lai atgrieztu visu tabulas nosaukumu masīvu sarakstu, izmantojot kolonnu “name”. Lai to izdarītu, masīva veidā jums jāizmanto vaicājuma SELECT funkcija ARRAY_AGG (). Izmēģiniet norādīto vaicājumu komandas apvalkā un iegūstiet rezultātu. Kā redzat, mums ir šāda izvades kolonna “array_agg”, kuras nosaukumi masīvā ir norādīti tam pašam vaicājumam.

>> SELECT ARRAY_AGG (vārds) NO personas;

ARRAY_AGG izmantošana vairākās kolonnās ar klauzulu ORDER BY:

01. piemērs:

Lietojot funkciju ARRAY_AGG vairākām kolonnām, vienlaikus izmantojot klauzulu ORDER BY, apsveriet to pašu tabulu “persona” datu bāzes “testā” ar trim kolonnām; “Id”, “name” un “age”. Šajā piemērā mēs izmantosim klauzulu GROUP BY.

>> SELECT * NO personas;

Mēs esam apvienojuši SELECT vaicājuma rezultātu masīvu sarakstā, vienlaikus izmantojot divas kolonnas “nosaukums” un “vecums”. Šajā piemērā mēs izmantojām vietu kā īpašu rakstzīmi, kas līdz šim tika izmantota, lai savienotu abas šīs kolonnas. No otras puses, kolonnu “id” mēs ienesām atsevišķi. Saīsinātā masīva rezultāts tiks parādīts slejā “persondata” izpildes laikā. Rezultātu kopa vispirms tiks sagrupēta pēc personas “id” un sakārtota lauka “id” augošā secībā. Izmēģināsim zemāk esošo komandu čaulā un paši redzēsim rezultātus. Jūs varat redzēt, ka mums ir atsevišķs masīvs katrai nosaukuma vecuma saķertajai vērtībai, kas redzama zemāk esošajā attēlā.

>> SELECT id, ARRAY_AGG (vārds || "|| vecums) kā personas dati NO personas GRUPA PĒC ID ID PASŪTĪT ID;



02. piemērs:

Apsveriet jaunizveidoto tabulu “Darbinieks” datu bāzes “testā” ar piecām kolonnām; “Id”, “name”, “alga”, “age” un “email”. Tabulā ir saglabāti visi dati par 5 darbiniekiem, kas strādā uzņēmumā. Šajā piemērā mēs izmantosim īpašo rakstzīmi '-', lai savienotu divus laukus, nevis izmantotu atstarpi, vienlaikus izmantojot klauzulas GROUP BY un ORDER BY.

>> SELECT * NO darbinieka;

Mēs apvienojam divu kolonnu “nosaukums” un “e-pasts” datus masīvā, vienlaikus izmantojot “-”. Tāpat kā iepriekš, kolonnu “id” mēs skaidri izvelkam. Saīsinātās kolonnas rezultāti palaišanas laikā tiks parādīti kā “emp”. Rezultātu kopu vispirms apkopos personas “id”, un pēc tam tas tiks sakārtots kolonnas “id” augošā secībā. Izmēģināsim ļoti līdzīgu komandu čaulā ar nelielām izmaiņām un redzēsim sekas. No zemāk redzamā rezultāta jūs esat ieguvis atšķirīgu masīvu katrai attēlā redzamajai vārda un e-pasta saīsinātai vērtībai, bet zīme “-” tiek izmantota katrā vērtībā.

>> SELECT id, ARRAY_AGG (nosaukums || '-' || e-pasts) KĀ EMP NO NO darbinieku grupas pēc ID PASŪTĪT PĒC id;

ARRAY_AGG izmantošana vairākās kolonnās bez klauzulas ORDER BY:

Varat arī izmēģināt ARRAY_AGG metodi jebkurā tabulā, neizmantojot klauzulas ORDER BY un GROUP BY. Pieņemsim, ka jūsu vecās datu bāzes “testā” ir izveidota nesen izveidota tabula “aktieris” ar trim kolonnām; “Id”, “fname” un “lname”. Tabulā ir dati par aktiera vārdiem un uzvārdiem, kā arī viņu ID.

>> SELECT * NO aktieris;

Tātad apvienojiet abas kolonnas “fname” un “lname” masīvu sarakstā, vienlaikus izmantojot atstarpi starp tām, tāpat kā jūs to darījāt pēdējos divos piemēros. Mēs neesam skaidri izņēmuši kolonnu “id”, un vaicājuma SELECT ietvaros mēs izmantojām funkciju ARRAY_AGG. Rezultātā izveidotā masīva saīsinātā kolonna tiks parādīta kā “dalībnieki”. Izmēģiniet zemāk norādīto vaicājumu komandas apvalkā un ieskatu iegūto masīvu. Mēs esam ieguvuši vienu masīvu ar uzrādītu vārda un e-pasta saīsinātu vērtību, kas no rezultāta atdalīta ar komatu.

Secinājums:

Visbeidzot, jūs esat gandrīz pabeidzis izpildīt lielāko daļu piemēru, kas nepieciešami, lai izprastu ARRAY_AGG apkopošanas metodi. Lai labāk izprastu un zinātu, izmēģiniet vairāk no tiem savā galā.

Pievienojiet peles žestus operētājsistēmai Windows 10, izmantojot šos bezmaksas rīkus
Pēdējos gados datori un operētājsistēmas ir ievērojami attīstījušās. Bija laiks, kad lietotājiem bija jāizmanto komandas, lai pārvietotos pa failu pār...
Kontrolējiet un pārvaldiet peles kustību starp vairākiem monitoriem sistēmā Windows 10
Dual Display Mouse Manager ļauj kontrolēt un konfigurēt peles kustību starp vairākiem monitoriem, palēninot tās kustību robežas tuvumā. Windows 10/8 ļ...
WinMouse ļauj jums pielāgot un uzlabot peles rādītāja kustību Windows datorā
Ja vēlaties uzlabot peles rādītāja noklusējuma funkcijas, izmantojiet bezmaksas programmatūru WinMouse. Tas pievieno vairāk funkciju, kas palīdzēs jum...