PostgreSQL

PostgreSQL NTILE-vinduesfunktion

PostgreSQL NTILE-vinduesfunktion
Vinduesmetoder i PostgreSQL er blevet afvist for at sidestille afvigende data og er vigtige for analytiske og andre PostgreSQL-brugssager. NTILE () -metoden efterfulgt af OVER-klausulen i PostgreSQL kasseres for at opdele organiserede rækker i nogenlunde lignende serier af sorterede spande. Skovle er ikke andet end et sæt rangerede grupper. I hele denne artikel vil du opdage, hvordan du deler sorterede rækker i en partition i en given figur af rangerede spande ved hjælp af funktionen PostgreSQL NTILE (). NTILE () -metoden tildeler et bucket-nummer til hver gruppe, der begynder med 1 i et sæt, hvilket viser det sæt, som rækken har sin plads til.

Syntaks:

>> NTILE (spande) OVER ([PARTITION BY partition expression,…] [ORDET BY sort expression]) [ASC | DESC],…]);

Først og fremmest skal du logge ind fra PostgreSQL-skalen for at forstå NTILE-metoden. Det er derfor, du prøver at starte PostgreSQL-kommandolinjeskallen fra applikationerne. For at arbejde på en anden server skal du indtaste navnet på en server. Ellers skal du trykke på Enter. Hvis du har brug for at øve dig i den tidligere udpegede database, e.g., Postgres, tryk derefter på Enter eller skriv en databanktitel, f.eks.g. 'prøve'. For at bruge en anden port end 5432, skriv den ud; hvis ikke, lad det være som det er, og tryk Enter for at fortsætte. Det kan muligvis bede dig om at indtaste brugernavnet, hvis du har brug for at skifte til et nyt brugernavn. Indtast brugernavnet; Ellers skal du bare trykke på Enter. Endelig skal du placere din nuværende brugeradgangskode for at skifte ved hjælp af kommandolinjen ved hjælp af den specifikke bruger som nedenunder. Derefter kan du effektivt arbejde med alle obligatoriske data, du kan begynde at arbejde på NTILE.

For at begynde at arbejde på NTILE skal du oprette en ny tabel ved hjælp af kommandoen CREATE, hvis du ikke har en. Tænk gennem nedenstående tabel "medarbejder" i din PostgreSQL-database kaldet 'test'. Denne tabel indeholder fire kolonner e.g., id, navn, alder og løn for en medarbejder i en bestemt virksomhed. Hver kolonne har i alt 10 rækker, hvilket betyder 10 poster i hvert kolonnefelt.

>> VÆLG * FRA medarbejder;

I starten skal vi forstå det enkle koncept at hente poster fra en tabel ved hjælp af ORDER BY-klausulen. Vi har udført nedenstående SELECT-kommando uden at bruge NTILE til at uddybe og forstå konceptet kort. Vi henter poster for kolonner; navn, alder og løn under sortering af posterne i stigende rækkefølge i feltet "alder". Du kan se, at det kun viser de poster, der er vist på billedet.

>> VÆLG navn, alder, løn FRA medarbejder BESTIL EFTER alder;

Brug af NTILE () OVER med ORDER BY Klausul:

Forudsat at den samme tabel "medarbejder", lad os begynde at bruge NTILE () OVER-klausul i vores eksempel. I dette eksempel har vi valgt de to kolonner; navn og løn, mens du sorterer resultatet relateret til den stigende rækkefølge af en kolonne "løn". Resultatet vil indeholde data, hvor en medarbejders alder er over 24 år. Vi har defineret værdien af ​​NTILE-skovlen som “3”, fordi vi vil opdele rækker i 3 spande, f.eks.g., 1 til 3. Du kan se, at rækkerne er opdelt med succes i 3 lige store spande, der indeholder 3 rækker i hver spand.

>> VÆLG navn, løn, NTILE (3) OVER (BESTIL EFTER løn) FRA medarbejder HVOR alder> '24';

Lad os nu tage et andet eksempel, mens vi bruger den samme tabel "medarbejder". Denne gang vil vi hente optegnelserne over tre kolonner; navn, alder og løn ved hjælp af SELECT-forespørgslen i kommandoskallen. Der er mindre ændringer i WHERE-klausulen. I øjeblikket har vi været på udkig efter optegnelser over tabellen "medarbejder", hvor alderen er mindre end 27 år, hvilket kun får de poster, der har en alder under 27. På den anden side er der ingen ændring i en spandværdi, da den igen er 3. Når vi prøver den angivne kommando, har vi kun fundet tre poster, ligeligt opdelt i 3 spande som vist på billedet.

>> VÆLG navn, alder, løn, NTILE (3) OVER (BESTIL EFTER løn) FRA medarbejder HVOR alder < '27';

Brug af NTILE () OVER med ORDER BY og PARTITION BY Klausul:

Lad os have et eksempel på NTILE () OVER, mens vi bruger PARTITION BY og ORDER BY-klausuler samtidigt. Antag, at den uændrede tabel "medarbejder" fra en database "test" vil blive brugt. I dette eksempel skal du vælge de tre kolonner; navn, alder og løn, mens du sorterer i stigende retning af et felt "alder". Desuden har vi brugt PARTITION BY-klausulen på kolonnen "løn" til at lave partitioner af en tabel i henhold til denne kolonne. Der er ingen specifik betingelse, der er brugt i denne særlige forespørgsel, hvilket betyder, at alle poster for tabel "medarbejder" vil blive vist. NTILE-skovlen har en værdi på “3”. Ved udførelsen af ​​nedenstående forespørgsel vil du se nedenstående resultat. Partitionerne udføres i henhold til de forskellige værdier i kolonne "løn". Alle værdierne i kolonne "løn" er forskellige, det er derfor, det ligger i forskellige partitioner undtagen værdien "60000". Dette betyder, at hver partition fik 1 værdi undtagen en. Derefter blev alle delingsrækker rangeret gennem spande. Kun en spand fik 2. rang.

>> VÆLG navn, alder, løn, NTILE (3) OVER (DELING EFTER løn, ORDEN EFTER alder) FRA medarbejder;

Med det samme eksempel på NTILE () OVER med brugen af ​​PARTITION BY og ORDER BY-klausul med en WHERE-klausul. I WHERE-klausulen har vi defineret betingelsen, der siger, at de eneste poster, der skal hentes, er hvor medarbejderens alder er mindre end 27 år. Vi fik kun 3 resultater med 2 partitioner efter alder og "ntile" kolonne med rækker.

>> VÆLG navn, alder, løn, NTILE (3) OVER (DELING EFTER løn, ORDRE EFTER alder) FRA medarbejder HVOR alder < '27';

Konklusion:

I denne vejledning har vi diskuteret forskellige eksempler på ntile-funktioner. Du kan implementere dem efter dine behov.

Sådan udvikler du et spil på Linux
For et årti siden ville ikke mange Linux-brugere forudsige, at deres foretrukne operativsystem en dag ville være en populær spilplatform til kommercie...
Open Source-porte med kommercielle spilmotorer
Gratis, open source og cross-platform spilmotorgendringer kan bruges til at spille gamle såvel som nogle af de temmelig nylige spiltitler. Denne artik...
Bedste kommandoliniespil til Linux
Kommandolinjen er ikke kun din største allierede, når du bruger Linux, den kan også være kilde til underholdning, fordi du kan bruge den til at spille...