PostgreSQL

Funcția de fereastră PostgreSQL NTILE

Funcția de fereastră PostgreSQL NTILE
Metodele de ferestre din PostgreSQL au fost respinse pentru a echivala date divergente și sunt esențiale pentru analize și alte cazuri de utilizare PostgreSQL. Metoda NTILE () urmată de clauza OVER în PostgreSQL este eliminată pentru a împărți rândurile organizate într-oarecum ca o serie de găleți gradate. Găleatele nu sunt altceva decât un set de grupe clasate. De-a lungul acestui articol, veți descoperi cum să împărțiți rândurile sortate într-o partiție într-o anumită cifră de găleți clasificate utilizând funcția PostgreSQL NTILE (). Metoda NTILE () alocă un număr de cupă fiecărui grup care începe de la 1 dintr-un set, demonstrând setul în care rândul își are locul.

Sintaxă:

>> NTILE (găleți) OVER ([PARTITION BY expresie partiție, ...] [ORDET BY expresie sortare]) [ASC | DESC], ...]);

În primul rând, pentru a înțelege metoda NTILE, conectați-vă din shell-ul PostgreSQL. De aceea, încercați să lansați shell-ul de linie de comandă PostgreSQL din aplicații. Pentru a lucra pe un alt server, introduceți numele unui server; în caz contrar, apăsați Enter. Dacă trebuie să exersați pe baza de date desemnată anterior, e.g., Postgres, apoi apăsați Enter sau altfel, inscrieți un titlu al băncii de date, e.g. 'Test'. Pentru a utiliza un alt port decât 5432, înscrieți-l; dacă nu, lăsați-l așa cum este și apăsați Enter pentru a continua. Vă poate solicita să introduceți numele de utilizator în cazul în care trebuie să treceți la un nou nume de utilizator. Introduceți numele de utilizator; altfel, trebuie doar să apăsați Enter. În cele din urmă, trebuie să puneți parola de utilizator actuală, pentru a comuta folosind linia de comandă utilizând acel utilizator specific ca dedesubt. Ulterior, intrări eficiente ale tuturor datelor obligatorii, puteți începe să lucrați la NTILE.

Pentru a începe să lucrați la NTILE, trebuie să creați un nou tabel utilizând comanda CREATE dacă nu aveți unul. Gândiți-vă la tabelul afișat mai jos „angajat” din baza de date PostgreSQL denumită „test”. Acest tabel conține patru coloane e.g., identitatea, numele, vârsta și salariul unui angajat al unei anumite companii. Fiecare coloană are un total de 10 rânduri, ceea ce înseamnă 10 înregistrări în fiecare câmp de coloană.

>> SELECT * DE LA angajat;

La început, trebuie să înțelegem conceptul simplu de preluare a înregistrărilor dintr-un tabel folosind clauza ORDER BY. Executăm comanda SELECT de mai jos fără a utiliza NTILE pentru a elabora și înțelege scurt conceptul. Preluăm înregistrări pentru coloane; numele, vârsta și salariul în timp ce sortați înregistrările în ordinea crescătoare a câmpului „vârstă”. Puteți vedea că va afișa doar înregistrările prezentate în imagine.

>> SELECȚIAȚI numele, vârsta, salariul DE LA SALAJ ORDINĂ PE VÂRZĂ;

Utilizarea NTILE () peste cu clauza ORDER BY:

Presupunând același tabel „angajat”, să începem să folosim clauza NTILE () OVER în exemplul nostru. În acest exemplu, am selectat cele două coloane; numele și salariul, în timp ce sortați rezultatul legat de ordinea crescătoare a unei coloane „salariu”. Rezultatul va conține date în care vârsta unui angajat este mai mare de 24 de ani. Am definit valoarea cupei NTILE ca fiind „3” deoarece vrem să împărțim rândurile în 3 cupe, e.g., 1 la 3. Puteți vedea că rândurile au fost împărțite cu succes în 3 găleți egale, conținând 3 rânduri în fiecare gălește.

>> SELECȚIAȚI numele, salariul, NTILE (3) PESTE (COMANDĂ PE SALARIU) DE la angajat UNDE vârstă> '24';

Acum, să luăm un alt exemplu în timp ce folosim același tabel „angajat”. De data aceasta, vrem să preluăm înregistrările a trei coloane; numele, vârsta și salariul utilizând interogarea SELECT din shell-ul comenzii. Există mici modificări în clauza WHERE. În prezent, am căutat înregistrările tabelului „angajat” în care vârsta este mai mică de 27 de ani, ceea ce va obține doar înregistrările cu vârsta mai mică de 27 de ani. Pe de altă parte, nu există nicio modificare a valorii cupei, deoarece este din nou 3. Încercând comanda menționată, am găsit doar trei înregistrări, împărțite în mod egal în 3 găleți așa cum este afișat în imagine.

>> SELECTAți numele, vârsta, salariul, NTILE (3) PESTE (ORDINĂ PE SALARIU) DE LA angajatul UNDE vârsta < '27';

Utilizarea NTILE () PENTRU FINALIZARE CU ORDINĂ ȘI PARTIȚIE CU Clauză:

Să avem un exemplu de NTILE () OVER în timp ce se utilizează simultan clauzele PARTITION BY și ORDER BY. Să presupunem că va fi utilizat tabelul neschimbat „angajat” dintr-un „test” al bazei de date. În acest exemplu, trebuie să selectați cele trei coloane; numele, vârsta și salariul, în timp ce sortați în modul ascendent al câmpului „vârstă”. În plus, am folosit clauza PARTITION BY din coloana „salariu”, pentru a face partiții dintr-un tabel conform acestei coloane. Nu există nicio condiție specifică care să fi fost utilizată în această interogare specială, ceea ce înseamnă că vor fi afișate toate înregistrările tabelului „angajat”. Cupa NTILE are o valoare „3”. La executarea interogării menționate mai jos, veți vedea rezultatul de mai jos. Partițiile se fac în funcție de valorile distincte ale coloanei „salariu”. Toate valorile coloanei „salariu” sunt distincte, de aceea se află în diferite partiții, cu excepția valorii „60000”. Aceasta înseamnă că fiecare partiție a primit o valoare, cu excepția uneia. După aceea, toate rândurile de partiții s-au clasat prin găleți. Doar o găleată a obținut rangul 2.

>> SELECȚIAȚI numele, vârsta, salariul, NTILE (3) PESTE (PARTIȚIA PE SALARIU, ORDINĂ PE VÂRZĂ) DE LA SALAR

Luând același exemplu de NTILE () OVER cu utilizarea clauzei PARTITION BY și ORDER BY cu o clauză WHERE. În clauza WHERE, am definit condiția, care spune că singurele înregistrări care vor fi preluate sunt în cazul în care vârsta angajatului este mai mică de 27 de ani. Am obținut doar 3 rezultate având 2 partiții în funcție de vârstă și coloana „net” cu ranguri.

>> SELECTAȚI numele, vârsta, salariul, NTILE (3) PESTE (PARTIȚIA PE SALARIU, ORDINĂ ÎN funcție de vârstă) DE LA angajatul UNDE vârsta < '27';

Concluzie:

În acest ghid, am discutat diferite exemple de funcții ntile. Le puteți implementa conform necesității dvs.

Jocuri HD remasterizate pentru Linux care nu au avut niciodată lansare Linux mai devreme
Mulți dezvoltatori și editori de jocuri vin cu remasterizarea HD a jocurilor vechi pentru a prelungi durata de viață a francizei, vă rog fanilor să so...
Cum se utilizează AutoKey pentru automatizarea jocurilor Linux
AutoKey este un utilitar de automatizare desktop pentru Linux și X11, programat în Python 3, GTK și Qt. Folosind funcțiile sale de scriptare și MACRO,...
Cum se arată FPS Counter în jocurile Linux
Jocurile cu Linux au primit un impuls major când Valve a anunțat suportul Linux pentru clientul Steam și jocurile acestora în 2012. De atunci, multe j...