MySQL MariaDB

MySQL RANK loga funkcija

MySQL RANK loga funkcija
Rangošanas metode katrai rindai piešķir rangu kopas iznākuma nodalījumā. Rindas rangu nosaka, palielinot vienu rindu skaitli no rindas, kas ir pirms tās. MySQL izmanto ranga funkciju, kas shēmas nodalījumā palīdz vienam rangam katrā rindā. MySQL reitinga metodes patiešām ir daļēja loga metodes sastāvdaļa. Reitingu metodes MySQL izmantosiet ar sekojošām klauzulām:

Kopumā ir trīs veidu ranžēšanas funkcijas:

MySQL RANK ():

Šī ir metode, kas piešķir rangu nodalījuma vai rezultātu masīva iekšpusē ar atstarpes vienā rindā. Hronoloģiski rindu rangs netiek piešķirts visu laiku (t.i.e., palielinājies par vienu no iepriekšējās rindas). Pat ja jums ir vienādas vērtības starp vairākām vērtībām, šajā brīdī rank () lietderība tai piemēro to pašu rangu. Arī tā iepriekšējais rangs plus atkārtotu skaitļu skaitlis var būt nākamais pakāpes numurs.

Lai saprastu rangu, atveriet komandrindas klienta čaulu un ievadiet MySQL paroli, lai sāktu to izmantot.

Pieņemsim, ka mums ir zemāk esošā tabula ar nosaukumu “pats” datu bāzē “dati”, ar dažiem ierakstiem.

>> SELECT * FROM dati.tas pats;

01. piemērs: vienkārša RANK ()

Zemāk komandā SELECT esam izmantojuši funkciju Rank. Šis vaicājums atlasa kolonnu “id” no tabulas “pats”, vienlaikus sarindojot to pēc kolonnas “id”. Kā redzat, mēs esam piešķīruši reitinga kolonnai nosaukumu, kas ir “my_rank”. Rangs tagad tiks saglabāts šajā slejā, kā parādīts zemāk.

>> SELECT id, RANK () OVER (ORDER BY ID) my_rank FROM.tas pats;

02. piemērs: RANK (), izmantojot PARTITION

Pieņemsim citu tabulu “darbinieks” datu bāzē “dati” ar šādiem ierakstiem. Pieņemsim vēl vienu gadījumu, kas sadalīs rezultātu kopu segmentos.

>> SELECT * FROM dati.darbinieks;

Lai izmantotu metodi RANK (), nākamajā instrukcijā katrai rindai tiek piešķirts rangs un kopējais rezultāts tiek sadalīts nodalījumos, izmantojot “Vecums” un kārtojot tos atkarībā no “Alga”. Šis vaicājums ir izguvis visus ierakstus, ierindojoties slejā “new_rank”. Šī vaicājuma iznākumu varat redzēt zemāk. Tā ir sakārtojusi tabulu pēc “Alga” un sadalījusi pēc “Vecums”.

>> SELECT *, RANK () OVER (SADALĪJUMS PĒC PASŪTĪJUMA PĒC ALGAS) new_rank FROM dati.darbinieks;

MySQL DENSE_Rank ():

Šī ir funkcionalitāte, kur, bez caurumiem, nosaka rangu katrā rindā sadalījuma vai rezultātu kopas iekšpusē. Rindu rangu visbiežāk piešķir secīgā secībā. Reizēm jums ir saistība starp vērtībām, un tāpēc tas tiek piešķirts precīzam rangam ar blīvu rangu, un tā nākamais rangs ir nākamais nākamais skaitlis.

01. piemērs: vienkārša DENSE_RANK ()

Pieņemsim, ka mums ir tabula “darbinieks”, un jums ir jāklasificē tabulas slejas “Vārds” un “Alga” atbilstoši slejai “Vārds”. Mēs esam izveidojuši jaunu sleju “dens_Rank”, lai tajā saglabātu ierakstu vērtējumu. Izpildot zemāk esošo vaicājumu, mums ir šādi rezultāti ar atšķirīgu rangu pēc visām vērtībām.

>> SELECT nosaukums, alga, DENSE_RANK () OVER (ORDER BY name) dens_rank FROM dati.darbinieks;

02. piemērs: DENSE_RANK () Izmantojot PARTITION

Apskatīsim vēl vienu gadījumu, kas sadalīs rezultātu kopu segmentos. Saskaņā ar zemāk esošo sintaksi iegūto kopu, kas sadalīta ar frāzi PARTITION BY, atgriež FROM paziņojums, un pēc tam katrai sadaļai tiek iesmērēta metode DENSE_RANK (), izmantojot kolonnu “Name”. Pēc tam katram segmentam frāze ORDER BY tiek uztverta, lai noteiktu rindu obligāto prasību, izmantojot kolonnu “Vecums”.

>> Atlasiet vārdu, vecumu, algu, DENSE_RANK () OVER (SADALĪJUMS PĒC VĀRDAS PASŪTĪŠANAS PĒC vecuma) new_rank FROM dati.darbinieks;

Izpildot iepriekš minēto vaicājumu, jūs varat redzēt, ka mums ir ļoti atšķirīgs rezultāts, salīdzinot ar metodi Single dense_rank () iepriekš minētajā piemērā. Mums ir tāda pati atkārtotā vērtība katras rindas vērtībai, kā redzat zemāk. Tas ir rangu vērtību sasaistījums.

MySQL PERCENT_RANK ():

Tā patiešām ir procentuālā rangu (salīdzinošā ranga) metode, kas aprēķina rindas nodalījuma vai rezultātu kolekcijas iekšienē. Šī metode atgriež sarakstu ar vērtību skalu no nulles līdz 1.

01. piemērs: vienkārša PERCENT_RANK ()

Izmantojot tabulu “darbinieks”, mēs aplūkojām vienkāršās PERCENT_RANK () metodes piemēru. Mums ir dots šāds vaicājums:. Kolonna per_rank ir ģenerēta ar metodi PERCENT_Rank (), lai ranžētu iestatīto rezultātu procentuālajā formā. Mēs esam izguvuši datus pēc kolonnas “Vecums” šķirošanas secības un pēc tam esam sarindojuši vērtības no šīs tabulas. Šī piemēra vaicājuma rezultāts deva mums procentuālo vērtējumu vērtībām, kā parādīts zemāk esošajā attēlā.

>> SELECT *, PERCENT_RANK () OVER (ORDER BY Age) per_rank FROM dati.darbinieks;

02. piemērs: PERCENT_RANK (), izmantojot PARTITION

Pēc vienkāršā PERCENT_RANK () piemēra veikšanas ir pienākusi kārta klauzulai “PARTITION BY”. Mēs izmantojām to pašu tabulu “darbinieks”. Apskatīsim vēl vienu gadījumu, kas sadalīs rezultātu kopu sadaļās. Ņemot vērā zemāk esošo sintaksi, iegūto iestatīto sienu ar izteiksmi PARTITION BY atlīdzina FROM deklarācija, kā arī tiek izmantota metode PERCENT_RANK (), lai sarindotu katru rindu secību pēc kolonnas “Name”. Zemāk redzamajā attēlā varat redzēt, kā rezultātu kopa satur tikai 0 un 1 vērtības.

>> SELECT *, PERCENT_RANK () OVER (SADALĪJUMS PĒC ALGAS PASŪTĪJUMA PĒC Vārda) PER_RANK FROM dati.darbinieks;

Secinājums:

Visbeidzot, mēs esam izpildījuši visas trīs ranžēšanas funkcijas MySQL izmantotajām rindām, izmantojot MySQL komandrindas klienta čaulu. Turklāt mēs savā pētījumā esam ņēmuši vērā gan vienkāršo, gan sadaļu SADALĪJUMS.

Komerciālo spēļu dzinēju atvērtā koda porti
Bezmaksas, atvērtā koda un starpplatformu spēļu dzinēju atpūtu var izmantot, lai spēlētu vecos, kā arī dažus no diezgan nesenajiem spēļu nosaukumiem. ...
Labākās komandrindas spēles Linux
Komandrinda nav tikai lielākais sabiedrotais, lietojot Linux, bet tā var būt arī izklaides avots, jo to var izmantot, lai spēlētu daudzas jautras spēl...
Labākās Linux spēļu gamepad kartēšanas lietotnes
Ja jums patīk spēlēt spēles Linux ar parastu tastatūru, nevis parasto tastatūru un peles ievades sistēmu, jums ir dažas noderīgas lietotnes. Daudzas d...