PostgreSQL

PostgreSQL NTILE-fönsterfunktion

PostgreSQL NTILE-fönsterfunktion
Fönstermetoder i PostgreSQL har kastats bort för att jämföra avvikande data och är väsentliga för analytiska och andra PostgreSQL-användningsfall. Metoden NTILE () följt av OVER-klausulen i PostgreSQL kasseras för att dela organiserade rader i ungefär samma serie av graderade hinkar. Skopor är inte mer än en uppsättning rankade grupper. Under hela den här artikeln kommer du att upptäcka hur du delar upp sorterade rader i en partition i en viss figur av rankade hinkar med funktionen PostgreSQL NTILE (). Metoden NTILE () tilldelar ett gruppnummer till varje grupp som börjar vid 1 i en uppsättning, vilket visar den uppsättning som raden har sin plats till.

Syntax:

>> NTILE (hinkar) ÖVER ([PARTITION BY partition expression,…] [ORDET BY sort expression]) [ASC | DESC],…]);

Först och främst, för att förstå NTILE-metoden, logga in från PostgreSQL-skalet. Det är därför du försöker starta PostgreSQL-kommandoradsskalet från applikationerna. För att arbeta på en annan server anger du namnet på en server. annars trycker du på Enter. Om du behöver öva på den tidigare utsedda databasen, t.ex.g., Postgres, tryck sedan på Enter eller skriv en databankrubrik, t.ex.g. 'testa'. För att använda en annan port än 5432, skriv in den; om inte, lämna det som det är och tryck Enter för att fortsätta. Det kan begära att du anger användarnamnet om du behöver byta till ett nytt användarnamn. Ange användarnamnet; annars, tryck bara på Enter. Slutligen måste du ange ditt nuvarande användarlösenord för att växla med kommandoraden med den specifika användaren som finns nedanför. Därefter, effektiva poster av alla obligatoriska data, kan du börja arbeta med NTILE.

För att börja arbeta med NTILE måste du skapa en ny tabell med kommandot CREATE om du inte har en. Tänk igenom nedanstående tabell "anställd" i din PostgreSQL-databas med namnet "test". Denna tabell innehåller fyra kolumner e.g., id, namn, ålder och lön för en anställd i ett visst företag. Varje kolumn har totalt 10 rader, vilket betyder 10 poster i varje kolumnfält.

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

I början måste vi förstå det enkla konceptet att hämta poster från en tabell med ORDER BY-satsen. Vi har utfört SELECT-kommandot nedan utan att använda NTILE för att utarbeta och förstå konceptet kort. Vi hämtar poster för kolumner; namn, ålder och lön medan du sorterar posterna i stigande ordning på fältet "ålder". Du kan se att det bara visar posterna som de visas i bilden.

>> VÄLJ namn, ålder, lön FRÅN anställd BESTÄLLNING efter ålder;

Användning av NTILE () OVER med BESTÄLLNING AV Klausul:

Förutsatt att samma tabell är "anställd", låt oss börja använda NTILE () OVER-klausulen i vårt exempel. I det här exemplet har vi valt de två kolumnerna; namn och lön, medan du sorterar resultatet relaterat till stigande ordning på en kolumn "lön". Resultatet kommer att innehålla uppgifter där en anställds ålder är högre än 24 år. Vi har definierat värdet på NTILE-skopan som "3" eftersom vi vill dela rader i 3 hinkar, e.g., 1 till 3. Du kan se att raderna har delats upp i tre lika stora hinkar, som innehåller 3 rader i varje hink.

>> VÄLJ namn, lön, NTILE (3) ÖVER (BESTÄLLNING PÅ lön) FRÅN anställd VAR ålder> '24';

Låt oss ta ett annat exempel när vi använder samma tabell "anställd". Den här gången vill vi hämta posterna för tre kolumner; namn, ålder och lön med SELECT-frågan i kommandoskalet. Det finns små förändringar i WHERE-klausulen. För närvarande har vi letat efter register över tabellen "anställd" där åldern är mindre än 27 år, vilket bara kommer att få posterna med en ålder som är lägre än 27. Å andra sidan finns det ingen förändring i ett skovelvärde, eftersom det igen är 3. När vi testade det angivna kommandot har vi bara hittat tre poster, lika uppdelade i 3 hinkar som visas på bilden.

>> VÄLJ namn, ålder, lön, NTILE (3) ÖVER (BESTÄLLNING LÖN) FRÅN anställd VAR ålder < '27';

Användning av NTILE () OVER med ORDER BY och PARTITION BY Klausul:

Låt oss ha ett exempel på NTILE () OVER när vi använder PARTITION BY och ORDER BY-klausulerna samtidigt. Antag att den oförändrade tabellen "anställd" från en databas "test" kommer att användas. I det här exemplet måste du välja de tre kolumnerna; namn, ålder och lön, medan du sorterar på stigande sätt av ett fält "ålder". Dessutom har vi använt PARTITION BY-klausulen på kolumnen "lön" för att göra partitioner av en tabell enligt den här kolumnen. Det finns inget specifikt villkor som har använts i den här frågan vilket innebär att alla poster för tabellen "anställd" kommer att visas. NTILE-skopan har värdet "3". Vid genomförandet av nedanstående fråga kommer du att se resultatet nedan. Partitionerna görs enligt de olika värdena i kolumnen "lön". Alla värden för kolumn "lön" är olika, det är därför det ligger i olika partitioner utom värdet "60000". Det betyder att varje partition fick 1 värde utom en. Därefter rankades alla partitionsrader genom skopor. Endast en hink fick 2: a rang.

>> VÄLJ namn, ålder, lön, NTILE (3) ÖVER (DELNING PER lön, BESTÄLLNING efter ålder) FRÅN anställd;

Med samma exempel på NTILE () OVER med användning av PARTITION BY och ORDER BY-sats med en WHERE-sats. I WHERE-klausulen har vi definierat villkoret, som säger att de enda poster som kommer att hämtas är där den anställdas ålder är mindre än 27 år. Vi fick bara 3 resultat med två partitioner efter ålder och "ntile" -kolumn med rankningar.

>> VÄLJ namn, ålder, lön, NTILE (3) ÖVER (DELNING PER lön, BESTÄLLNING efter ålder) FRÅN anställd VAR ålder < '27';

Slutsats:

I den här guiden har vi diskuterat olika exempel på ntile-funktioner. Du kan implementera dem enligt dina behov.

Mus Hur man använder Xdotool för att stimulera musklick och tangenttryckningar i Linux
Hur man använder Xdotool för att stimulera musklick och tangenttryckningar i Linux
Xdotool är ett ledigt verktyg för öppen källkod för simulering av musklick och tangenttryckningar. Den här artikeln kommer att täcka en kort guide om ...
Mus Topp 5 Ergonomiska datormusprodukter för Linux
Topp 5 Ergonomiska datormusprodukter för Linux
Ger långvarig datoranvändning smärta i handleden eller fingrarna? Lider du av styva leder och måste ständigt skaka hand? Känner du en brännande smärta...
Mus Så här ändrar du inställningar för mus och pekplatta med Xinput i Linux
Så här ändrar du inställningar för mus och pekplatta med Xinput i Linux
De flesta Linux-distributioner levereras med "libinput" -bibliotek som standard för att hantera inmatningshändelser i ett system. Den kan bearbeta inm...