Hvordan bruke PostgreSql Array_AGG -funksjon?

Hvordan bruke PostgreSql Array_AGG -funksjon?
AGRAY_AGG () Aggregate -metoden er en av metodene som brukes i PostgreSQL, som tar flere inngangsverdier og sammenkobler dem til en matrise, inkludert nullverdier. Den returnerer en matrise med hver verdi fra inngangsgruppen som en del. For å sortere resultatet satt via PostgreSQL Array_AGG -funksjonen, vil du bruke bestillingen etter setning. Du kan også bruke WHERE -leddet når det er nødvendig.

For å forstå den samlede array_agg () -metoden, må du utføre flere eksempler. For dette formålet, åpne PostgreSQL-kommandolinjeskallet. Hvis du vil slå på den andre serveren, gjør du det ved å oppgi navnet. Ellers la plassen være tomt og trykke på Enter -knappen for å hoppe på databasen. Hvis du vil bruke standarddatabasen, e.g., Postgres, la den deretter være og trykk Enter; Ellers, skriv navnet på en database, e.g., “Test”, som vist på bildet nedenfor. Hvis du vil bruke en annen port, skriv den ut, ellers er det bare å la den være som den er og trykk Enter for å fortsette. Det vil be deg om å legge til brukernavnet hvis du vil bytte til et annet brukernavn. Legg til brukernavnet hvis du vil, ellers bare trykk "Enter". Til slutt må du oppgi ditt nåværende brukerpassord, for å begynne å bruke kommandolinjen ved å bruke den aktuelle brukeren som nedenfor. Etter vellykkede oppføringer av all nødvendig informasjon, er du god til å gå.

Bruk av array_agg på enkeltkolonne:

Tenk på tabellen "person" i databasen "test" med tre kolonner; “Id”, “Navn” og “Alder”. Kolonnen "ID" har IDS for alle personene. Mens feltet 'Navn' inneholder navnene på personene og kolonnen 'Age' i alderen til alle personene.

>> velg * fra person;

Avhengig av overhead -tabellen, må vi bruke Aggregate Array_AGG -metoden for å returnere listen over matrise med alle navnene på tabellen via kolonnen "Navn". Med dette må du bruke array_agg () -funksjonen i SELECT -spørringen for å hente resultatet i form av en matrise. Prøv den uttalte spørringen i kommandoskallet ditt og få resultatet. Som du kan se, har vi underutgangskolonnen “Array_AGG” som har navn oppført i en matrise for samme spørring.

>> velg array_agg (navn) fra personen;

Bruk av array_agg på flere kolonner med orden etter klausul:

Eksempel 01:

Bruke array_agg -funksjonen på flere kolonner mens du bruker ordren etter leddet, bør du vurdere den samme tabellen "person" i databasen "test" med tre kolonner; “Id”, “Navn” og “Alder”. I dette eksemplet vil vi bruke gruppen etter klausul.

>> velg * fra person;

Vi har sammenkoblet Select Query Resultat i en array -liste mens vi bruker de to kolonnene “Navn” og “Age”. I dette eksemplet har vi brukt plass som en spesiell karakter som har blitt brukt til å sammenkoble begge disse kolonnene så langt. På den annen side har vi hentet kolonnen “ID” hver for seg. Det sammenkoblede matriseresultatet vil bli vist i en kolonne “Persondata” på kjøretid. Resultatsettet blir først gruppert etter "ID" for personen og sortert i stigende rekkefølge av felt "id". La oss prøve kommandoen nedenfor i skallet og se resultatene selv. Du kan se at vi har fått en egen matrise for alle sammenkoblede verdier på navnealderen på bildet nedenfor.

>> Velg ID, Array_AGG (Navn || "|| Alder) som Persondata fra Person Group etter ID -ordre etter ID;



Eksempel 02:

Tenk på en nyopprettet tabell “ansatt” i databasen “Test” med fem kolonner; “Id”, “Navn”, “Lønn”, “Alder” og “E -post”. Tabellen lagrer alle dataene om de 5 ansatte som jobber i et selskap. I dette eksemplet vil vi bruke spesialpersonen '-' for å sammenkoble to felt i stedet for å bruke plass mens vi bruker gruppen etter og bestiller etter klausul.

>> Velg * fra ansatt;

Vi sammenkobler dataene fra to kolonner, "navn" og "e-post" i en matrise mens vi bruker '-' mellom dem. Samme som før, vi henter ut kolonnen “ID” tydelig. De sammenkoblede kolonnesultatene vil bli vist som "EMP" på kjøretid. Utfallssettet blir først samlet av "ID" for personen, og etterpå vil det bli organisert i stigende rekkefølge av kolonnen "ID". La oss prøve en veldig lignende kommando i skallet med mindre endringer og se konsekvensene. Fra resultatet nedenfor har du anskaffet en distinkt matrise for hver navn-e-postkonkurranse som er presentert på bildet mens '-' -tegnet brukes i hver verdi.

>> Velg ID, Array_AGG (Navn || '-' || E-post) som emp fra ansattes gruppe etter ID-ordre etter ID;

Bruk av array_agg på flere kolonner uten ordre etter klausul:

Du kan også prøve ARRAY_AGG -metoden på en hvilken som helst tabell uten å bruke ordren etter og gruppere etter klausul. Anta en nyopprettet tabell "skuespiller" i den gamle databasen "Test" med tre kolonner; “Id”, “Fname” og “Lname”. Tabellen inneholder data om skuespillerens fornavn og etternavn sammen med ID -ene.

>> Velg * fra skuespiller;

Så sammenkoble de to kolonnene “fname” og “lname” i en array -liste mens du bruker plass mellom dem, samme som du gjorde i de to siste eksemplene. Vi har ikke tatt ut kolonnen 'ID' utpreget Andee har brukt Array_AGG -funksjonen i SELECT -spørringen. Den resulterte matrisen sammenkoblet kolonne vil bli presentert som "skuespillere". Prøv den under-uttalte spørringen i kommandoskallet og ha et glimt av den resulterte matrisen. Vi har hentet en enkelt matrise med navn-e-post som er samlet inn presentert, atskilt med et komma fra utfallet.

Konklusjon:

Endelig er du nesten ferdig med å utføre de fleste eksemplene som kreves for å forstå AGRAY_AGG AGGREGE -metoden. Prøv flere av dem på slutten for bedre forståelse og kunnskap.