PostgreSQL

Hvordan bruke PostgreSQL ARRAY_AGG-funksjonen?

Hvordan bruke PostgreSQL ARRAY_AGG-funksjonen?
ARRAY_AGG () aggregatmetoden er en av metodene som brukes i PostgreSQL, som tar flere inngangsverdier og sammenkobles til en matrise, inkludert NULL-verdier. Den returnerer en matrise med hver verdi fra inngangsgruppen som en del. For å sortere resultatsettet via PostgreSQL ARRAY_AGG-funksjonen, bruker du ORDER BY-setningen. Du kan også bruke WHERE-setningen 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 kommandolinjeskall. Hvis du vil slå på den andre serveren, gjør du det ved å oppgi navnet. Ellers la plassen være tom og trykk Enter-knappen for å hoppe på databasen. Hvis du vil bruke standarddatabasen, f.eks.g., Postgres, la det være som det er og trykk Enter; Ellers skriver du navnet på en database, f.eks.g., “Test”, som vist på bildet nedenfor. Hvis du vil bruke en annen port, skriv den ut, ellers bare la den være som den er og trykk Enter for å fortsette. Den vil be deg om å legge til brukernavnet hvis du vil bytte til et annet brukernavn. Legg til brukernavnet hvis du vil, ellers er det bare å trykke “Enter”. Til slutt må du oppgi ditt nåværende brukerpassord for å begynne å bruke kommandolinjen ved å bruke den aktuelle brukeren som nedenfor. Etter vellykket oppføring av all nødvendig informasjon, er du klar til å gå.

Bruk av ARRAY_AGG på én kolonne:

Tenk på tabellen "person" i databasen "test" med tre kolonner; “Id”, “navn” og “alder”. Kolonnen “id” har ID-ene til alle personene. Mens feltet 'navn' inneholder navnene på personene og kolonnen 'alder', er alderen på alle personene.

>> VELG * FRA person;

Avhengig av overliggende tabell, må vi bruke den samlede ARRAY_AGG-metoden for å returnere listen over matriser 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 oppgitte spørringen i kommandoskallet og få resultatet. Som du kan se, har vi nedenstående utgangskolonne "array_agg" med navn oppført i en matrise for den samme spørringen.

>> VELG ARRAY_AGG (navn) FRA person;

Bruk av ARRAY_AGG på flere kolonner med BESTILLING AV Klausul:

Eksempel 01:

Ved å bruke ARRAY_AGG-funksjonen på flere kolonner mens du bruker ORDER BY-setningen, bør du vurdere den samme tabellen som "person" i databasetesten med tre kolonner; “Id”, “navn” og “alder”. I dette eksemplet bruker vi GROUP BY-setningen.

>> VELG * FRA person;

Vi har sammenføyet SELECT-søkeresultatet i en matriseliste mens vi bruker de to kolonnene "navn" og "alder". I dette eksemplet har vi brukt plass som et spesialtegn som har blitt brukt til å sammenkoble begge disse kolonnene så langt. På den annen side har vi hentet kolonnen "id" separat. Det sammenhengende matriseresultatet vil vises i en kolonne “persondata” på kjøretid. Resultatsettet blir først gruppert etter “id” til 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 en egen matrise for hver sammenkoblet verdi med navnealder i bildet nedenfor.

>> VELG id, ARRAY_AGG (navn || "|| alder) som persondata FRA person GRUPPE PÅ id BESTIL PÅ id;



Eksempel 02:

Tenk på en nylig opprettet tabell "Ansatt" i databasetesten "test" med fem kolonner; “Id”, “navn”, “lønn”, “alder” og “e-post”. Tabellen lagrer alle data om de 5 ansatte som jobber i et selskap. I dette eksemplet bruker vi spesialtegnet '-' for å sammenkoble to felt i stedet for å bruke mellomrom mens vi bruker paragrafen GROUP BY og ORDER BY.

>> VELG * FRA ansatt;

Vi sammenføyer dataene til to kolonner, "navn" og "e-post" i en matrise mens vi bruker '-' mellom dem. Samme som før, trekker vi ut kolonnen “id” tydelig. De sammenhengende kolonneresultatene vil vises som “emp” på kjøretid. Utfallssettet blir først samlet av "id" til personen, og deretter vil det bli organisert i stigende rekkefølge av kolonne "id". La oss prøve en veldig lik kommando i skallet med mindre endringer og se konsekvensene. Fra resultatet nedenfor har du anskaffet en distinkt matrise for hver sammenkoblet verdi med navn og e-post som presenteres i bildet mens '-' tegnet brukes i hver verdi.

>> VELG id, ARRAY_AGG (navn || '-' || e-post) SOM emp FRA MedarbeiderGRUPPE PÅ id BESTILLING PÅ id;

Bruk av ARRAY_AGG på flere kolonner uten BESTILLING AV Klausul:

Du kan også prøve ARRAY_AGG-metoden på et hvilket som helst bord uten å bruke ORDER BY- og GROUP BY-ledd. Anta en nylig opprettet tabell "skuespiller" i den gamle databasetesten med tre kolonner; “Id”, “fname” og “lname”. Tabellen inneholder data om skuespillerens fornavn og etternavn sammen med ID-ene.

>> VELG * FRA skuespiller;

Så sammenføy de to kolonnene "fname" og "lname" i en matriseliste mens du bruker mellomrom mellom dem, det samme som du gjorde i de to siste eksemplene. Vi har ikke tatt ut kolonnen "id" tydelig og har brukt ARRAY_AGG-funksjonen i SELECT-spørringen. Den resulterende matrisen sammenkoblet kolonne vil bli presentert som "skuespillere". Prøv spørringen nedenfor i kommandoskallet og få et glimt av den resulterende matrisen. Vi har hentet en enkelt matrise med sammenkoblet verdi med navn og e-post presentert, atskilt med komma fra utfallet.

Konklusjon:

Til slutt er du nesten ferdig med å utføre de fleste eksemplene som kreves for å forstå ARRAY_AGG-aggregatmetoden. Prøv flere av dem på slutten for bedre forståelse og kunnskap.

Hvordan bruke AutoKey til å automatisere Linux-spill
AutoKey er et desktopautomatiseringsverktøy for Linux og X11, programmert i Python 3, GTK og Qt. Ved å bruke skript og MACRO-funksjonalitet kan du aut...
Hvordan vise FPS-teller i Linux-spill
Linux-spill fikk et stort press da Valve kunngjorde Linux-støtte for Steam-klient og spillene deres i 2012. Siden den gang har mange AAA- og indiespil...
Hvordan laste ned og spille Sid Meier's Civilization VI på Linux
Introduksjon til spillet Civilization 6 er et moderne syn på det klassiske konseptet som ble introdusert i serien av Age of Empires-spillene. Ideen va...