MySQL MariaDB

Funcția MySQL RANK Window

Funcția MySQL RANK Window
Metoda de clasare alocă un rang în interiorul partiției unui rezultat al unui set fiecărui rând. Rangul unui rând este determinat prin incrementarea unei cifre de ranguri din rândul care îl precedă. MySQL utilizează o caracteristică de clasare care ajută la o clasare pe rând într-o partiție de schemă. În MySQL, metodele de evaluare sunt într-adevăr o semi-parte a metodei ferestrei. Veți utiliza metodele de evaluare în MySQL cu oricare dintre clauzele următoare:

În total, există trei tipuri de funcții de clasificare, după cum urmează:

MySQL RANK ():

Aceasta este o metodă care oferă un rang în interiorul unei partiții sau matrice de rezultate cu lacune pe rând. Cronologic, clasarea rândurilor nu este alocată tot timpul (i.e., crescut cu unul față de rândul anterior). Chiar și atunci când aveți o legătură între mai multe valori, în acel moment, utilitatea rank () îi aplică același clasament. De asemenea, rangul său anterior plus o cifră de numere repetate poate fi numărul de rang ulterior.

Pentru a înțelege clasarea, deschideți shell-ul clientului din linia de comandă și introduceți parola MySQL pentru a începe să o utilizați.

Să presupunem că avem un tabel de mai jos numit „același” într-o bază de date „date”, cu unele înregistrări.

>> SELECT * DIN date.la fel;

Exemplul 01: RANK simplu ()

Mai jos, am folosit funcția Rank în cadrul comenzii SELECT. Această interogare selectează coloana „id” din tabelul „același” în timp ce o clasează în funcție de coloana „id”. După cum puteți vedea, am dat coloanei de clasare un nume, care este „clasa_mea”. Clasamentul va fi acum stocat în această coloană, așa cum se arată mai jos.

>> SELECT ID, RANK () OVER (ORDER BY id) my_rank FROM fata.la fel;

Exemplul 02: RANK () Folosind PARTITION

Să presupunem un alt „angajat” de tabel într-o „bază de date” a bazei de date cu următoarele înregistrări. Să avem o altă instanță care împarte setul de rezultate în segmente.

>> SELECT * DIN date.angajat;

Pentru a consuma metoda RANK (), instrucțiunea ulterioară atribuie rangul fiecărui rând și împarte rezultatul în partiții folosind „Vârsta” și sortându-le în funcție de „Salariu”. Această interogare a preluat toate înregistrările în timp ce se clasa într-o coloană „rang_ nou”. Puteți vedea rezultatul acestei interogări mai jos. A sortat tabelul în funcție de „Salariu” și l-a împărțit în funcție de „Vârstă”.

>> SELECT *, RANK () PESTE (PARTIȚIE PE VÂRZĂ ​​ORDINĂ PE SALARIU) new_rank FROM data.angajat;

MySQL DENSE_Rank ():

Aceasta este o funcționalitate în care, fără găuri, determină un rang pentru fiecare rând din interiorul unei divizii sau a unui set de rezultate. Clasarea rândurilor este cel mai adesea alocată în ordine secvențială. Uneori, aveți o legătură între valori și, prin urmare, este atribuită rangului exact de rangul dens, iar rangul său ulterior este următorul număr care urmează.

Exemplul 01: simplu DENSE_RANK ()

Să presupunem că avem un tabel „angajat” și trebuie să clasificați coloanele tabelului, „Nume” și „Salariu” în conformitate cu coloana „Nume”. Am creat o nouă coloană „dens_Rank” pentru a stoca evaluarea înregistrărilor în ea. La executarea interogării de mai jos, avem următoarele rezultate cu o clasare diferită față de toate valorile.

>> SELECT Nume, Salariu, DENSE_RANK () OVER (ORDER BY Name) dens_rank FROM data.angajat;

Exemplul 02: DENSE_RANK () Folosind PARTITION

Să vedem o altă instanță care împarte rezultatul în segmente. Conform sintaxei de mai jos, setul rezultat partiționat de fraza PARTITION BY este returnat de instrucțiunea FROM, iar metoda DENSE_RANK () este apoi împrăștiată în fiecare secțiune folosind coloana „Nume”. Apoi, pentru fiecare segment, fraza ORDER BY BY freacă pentru a determina imperativul rândurilor folosind coloana „Age”.

>> SELECȚIONEAZĂ Nume, Vârstă, Salariu, DENSE_RANK () PESTE (PARTIȚIE PE NUME ORDINĂ ÎN VÂRZĂ) new_rank DIN date.angajat;

La executarea interogării de mai sus, puteți vedea că avem un rezultat foarte distinct în comparație cu metoda Single dense_rank () din exemplul de mai sus. Avem aceeași valoare repetată pentru fiecare valoare de rând, după cum puteți vedea mai jos. Este legătura valorilor de rang.

MySQL PERCENT_RANK ():

Este într-adevăr o metodă de clasare procentuală (rang comparativ) care calculează pentru rândurile dintr-o partiție sau o colecție de rezultate. Această metodă returnează o listă de la o scară de valori de la zero la 1.

Exemplul 01: simplu PERCENT_RANK ()

Folosind tabelul „angajat”, ne-am uitat la exemplul metodei simple PERCENT_RANK (). Avem o interogare dată mai jos pentru acest lucru. Coloana per_rank a fost generată de metoda PERCENT_Rank () pentru a clasa setul de rezultate în forma procentuală. Am preluat datele în funcție de ordinea de sortare a coloanei „Vârstă” și apoi am clasat valorile din acest tabel. Rezultatul interogării pentru acest exemplu ne-a dat o clasare procentuală pentru valorile prezentate în imaginea de mai jos.

>> SELECT *, PERCENT_RANK () OVER (ORDER BY Age) per_rank FROM data.angajat;

Exemplul 02: PERCENT_RANK () Folosind PARTITION

După ce ați făcut exemplul simplu de PERCENT_RANK (), acum a venit rândul pentru clauza „PARTITION BY”. Am folosit același tabel „angajat”. Să vedem din nou o altă instanță care împarte setul de rezultate în secțiuni. Dat din sintaxa de mai jos, peretele setat rezultat de expresia PARTITION BY este rambursat prin declarația FROM, precum și metoda PERCENT_RANK () este apoi utilizată pentru a ordona fiecare ordine de rând prin coloana „Nume”. În imaginea afișată mai jos, puteți vedea că setul de rezultate conține doar 0 și 1 valori.

>> SELECT *, PERCENT_RANK () PESTE (PARTIȚIE PE SALARIU ORDINĂ PE Nume) per_rank DIN date.angajat;

Concluzie:

În cele din urmă, am făcut toate cele trei funcții de clasare pentru rândurile utilizate în MySQL, prin shell-ul clientului din linia de comandă MySQL. De asemenea, am luat în considerare atât clauza simplă, cât și clauza PARTITION BY din studiul nostru.

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...
How to download and Play Sid Meier's Civilization VI on Linux
Introduction to the game Civilization 6 is a modern take on the classic concept introduced in the series of the Age of Empires games. The idea was fai...
How to Install and Play Doom on Linux
Introduction to Doom The Doom Series originated in the 90s after the release of the original Doom. It was an instant hit and from that time onwards th...