PostgreSQL

Hur man använder funktionen PostgreSQL ARRAY_AGG?

Hur man använder funktionen PostgreSQL ARRAY_AGG?
Den samlade metoden ARRAY_AGG () är en av metoderna som används i PostgreSQL, som tar flera ingångsvärden och sammanfogar dem till en matris, inklusive NULL-värden. Den returnerar en matris med alla värden från inmatningsgruppen som en del. För att sortera resultatuppsättningen via PostgreSQL ARRAY_AGG-funktionen använder du ORDER BY-frasen. Du kan också använda WHERE-klausulen när så krävs.

För att förstå den samlade ARRAY_Agg () -metoden måste du utföra flera exempel. För detta ändamål öppnar du PostgreSQL-kommandoradsskalet. Om du vill slå på den andra servern, gör det genom att ange dess namn. Annars lämnar du utrymmet tomt och trycker på Enter-knappen för att hoppa till databas. Om du vill använda standarddatabasen, t.ex.g., Postgres, låt det vara som det är och tryck på Enter; annars skriver du namnet på en databas, t.ex.g., “Test”, som visas i bilden nedan. Om du vill använda en annan port, skriv ut den, annars lämna den bara som den är och tryck lätt på Enter för att fortsätta. Den ber dig att lägga till användarnamnet om du vill byta till ett annat användarnamn. Lägg till användarnamnet om du vill, annars trycker du bara på "Enter". I slutändan måste du ange ditt nuvarande användarlösenord för att börja använda kommandoraden med den specifika användaren enligt nedan. Efter framgångsrik inmatning av all nödvändig information är du redo att gå.

Användning av ARRAY_AGG på en kolumn:

Tänk på tabellen "person" i databasens "test" med tre kolumner; "Id", "namn" och "ålder". Kolumnen "id" har ID: n för alla personer. Medan fältet "namn" innehåller namnen på personerna och kolumnen "ålder" åldrarna för alla personer.

>> VÄLJ * FRÅN person;

Beroende på overheadtabellen måste vi tillämpa den sammanlagda ARRAY_AGG-metoden för att returnera listan över matriser med alla namn på tabellen via kolumnen "namn". Med detta måste du använda funktionen ARRAY_AGG () i SELECT-frågan för att hämta resultatet i form av en matris. Prova den angivna frågan i ditt kommandoskal och få resultatet. Som du kan se har vi nedanstående utmatningskolumn "array_agg" med namn listade i en array för samma fråga.

>> VÄLJ ARRAY_AGG (namn) FRÅN person;

Användning av ARRAY_AGG på flera kolumner med ORDER BY-klausul:

Exempel 01:

Om du använder ARRAY_AGG-funktionen på flera kolumner medan du använder ORDER BY-satsen, överväg samma tabell som "person" i databasens "test" med tre kolumner; "Id", "namn" och "ålder". I det här exemplet använder vi GROUP BY-klausulen.

>> VÄLJ * FRÅN person;

Vi har sammanfogat SELECT-frågeresultatet i en matrislista medan vi använder de två kolumnerna "namn" och "ålder". I det här exemplet har vi använt utrymme som ett specialtecken som hittills har använts för att sammanfoga båda dessa kolumner. Å andra sidan har vi hämtat kolumnen "id" separat. Det sammanhängande matrisresultatet visas i en kolumn "persondata" vid körningstid. Resultatuppsättningen grupperas först efter personens "id" och sorteras i stigande ordning på fältet "id". Låt oss prova kommandot nedan i skalet och se resultaten själv. Du kan se att vi har en separat matris för varje sammansatt värde med namnålder i bilden nedan.

>> VÄLJ id, ARRAY_AGG (namn || "|| ålder) som persondata FRÅN person GRUPP PÅ id BESTÄLLA PÅ id;



Exempel 02:

Tänk på en nyskapad tabell "Anställd" i databasens "test" med fem kolumner; "Id", "namn", "lön", "ålder" och "e-post". Tabellen lagrar all information om de 5 anställda som arbetar i ett företag. I det här exemplet använder vi specialtecknet '-' för att sammanfoga två fält i stället för att använda mellanslag medan vi använder paragrafen GROUP BY och ORDER BY.

>> VÄLJ * FRÅN anställd;

Vi sammanfogar data från två kolumner, "namn" och "e-post" i en matris medan vi använder '-' mellan dem. Samma som tidigare, vi extraherar kolumnen "id" tydligt. De sammanhängande kolumnresultaten visas som “emp” vid körningstiden. Resultatuppsättningen samlas först av personens "id" och därefter organiseras den i stigande ordning i kolumnen "id". Låt oss försöka med ett mycket liknande kommando i skalet med mindre förändringar och se konsekvenserna. Från resultatet nedan har du anskaffat en distinkt matris för varje sammankopplat namn-e-postvärde som visas i bilden medan '-' -tecknet används i varje värde.

>> VÄLJ id, ARRAY_AGG (namn || '-' || e-post) SOM emp FRÅN anställd GRUPP MED ID BESTÄLLNING AV id;

Användning av ARRAY_AGG på flera kolumner utan BESTÄLLNING AV Klausul:

Du kan också prova metoden ARRAY_AGG på valfri tabell utan att använda ORDER BY- och GROUP BY-paragrafen. Antag att en nyskapad tabell "skådespelare" i ditt gamla databas "test" har tre kolumner; “Id”, “fname” och “lname”. Tabellen innehåller data om skådespelarens förnamn och efternamn tillsammans med deras id.

>> VÄLJ * FRÅN skådespelare;

Sammanfoga de två kolumnerna "fname" och "lname" i en matrislista medan du använder utrymme mellan dem, samma som du gjorde i de två sista exemplen. Vi har inte tagit ut kolumnen "id" tydligt och har använt ARRAY_AGG-funktionen inom SELECT-frågan. Den resulterande gruppens sammanhängande kolumn presenteras som "aktörer". Testa nedanstående fråga i kommandoskalet och få en glimt av den resulterade matrisen. Vi har hämtat en enda matris med namn-e-post sammanfogat värde presenterat, åtskilt med ett komma från resultatet.

Slutsats:

Slutligen är du nästan klar med att köra de flesta exemplen som krävs för att förstå ARRAY_AGG-aggregeringsmetoden. Prova fler av dem i slutet för bättre förståelse och kunskap.

Så här installerar du League Of Legends på Ubuntu 14.04
Om du gillar League of Legends är det här en möjlighet för dig att testa League of Legends. Observera att LOL stöds på PlayOnLinux om du är en Linux-a...
Installera det senaste OpenRA-strategispelet på Ubuntu Linux
OpenRA är en Libre / Free Real Time Strategy-spelmotor som återskapar de tidiga Westwood-spelen som det klassiska Command & Conquer: Red Alert. Distri...
Installera senaste Dolphin Emulator för Gamecube & Wii på Linux
Dolphin Emulator låter dig spela dina valda Gamecube & Wii-spel på Linux Personal Computers (PC). Eftersom Dolphin Emulator är en fritt tillgänglig o...