MySQL MariaDB

Funkcija okna MySQL RANK

Funkcija okna MySQL RANK
Metoda razvrščanja dodeli uvrstitev znotraj particije izida nabora vsaki vrstici. Uvrstitev vrstice se določi tako, da se ena vrstica uvrsti iz vrstice, ki je pred njo. MySQL uporablja funkcijo razvrščanja, ki pomaga en uvrstitev na vrstico na particiji sheme. V MySQL so ocenjevalne metode dejansko polovični del okenske metode. V MySQL boste uporabljali ocenjevalne metode z naslednjimi stavki:

Skupno obstajajo tri vrste funkcij za razvrščanje, in sicer:

RANG MySQL ():

To je metoda, ki daje uvrstitev znotraj particije ali matrike rezultatov s vrzeli na vrstico. Kronološko razvrstitev vrstic ni ves čas dodeljena (tj.e., povečano za eno iz prejšnje vrstice). Tudi če imate med več vrednostmi neodločen rezultat, pripomoček rank () zanj uporabi isto uvrstitev. Tudi prejšnji rang plus številka ponavljajočih se številk je lahko naslednja številka ranga.

Če želite razumeti uvrstitev, odprite odjemalsko lupino ukazne vrstice in vnesite geslo MySQL, da jo začnete uporabljati.

Predpostavimo, da imamo spodnjo tabelo z imenom „enako“ znotraj baze podatkov „podatki“ z nekaj zapisi.

>> IZBERI * IZ podatkov.enako;

Primer 01: Preprost RANK ()

Spodaj uporabljamo funkcijo Rank v ukazu SELECT. Ta poizvedba izbere stolpec "id" iz tabele "enako", medtem ko ga razvršča glede na stolpec "id". Kot lahko vidite, smo stolpcu za uvrstitev dali ime, ki je "my_rank". Razvrstitev bo zdaj shranjena v tem stolpcu, kot je prikazano spodaj.

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

Primer 02: RANK () z uporabo PARTITION

Predpostavimo drugo tabelo "zaposleni" v zbirki podatkov "podatki" z naslednjimi zapisi. Dajmo še en primerek, ki razdeli nabor rezultatov na segmente.

>> IZBERI * IZ podatkov.zaposleni;

Če želite uporabiti metodo RANK (), naslednje navodilo dodeli rang vsaki vrstici in razdeli nabor rezultatov na particije z uporabo »Starost« in jih razvrsti glede na »Plačo«. Ta poizvedba je zajemala vse zapise med razvrščanjem v stolpec »new_rank«. Rezultate te poizvedbe si lahko ogledate spodaj. Tabelo je razvrstila glede na "Plača" in jo razdelila glede na "Starost".

>> IZBERI *, RANG () NAD (RAZDELITEV PO STAROSTI NAROČI PO plači) new_rank IZ podatkov.zaposleni;

MySQL DENSE_Rank ():

To je funkcionalnost, kjer, brez lukenj, določa uvrstitev za vsako vrstico znotraj deljenja ali nabora rezultatov. Razvrstitev vrstic je najpogosteje dodeljena po zaporedju. Včasih imate med vrednostmi izenačenost, zato jo natančni rang dodeli gost rang, njegov naslednji rang pa je naslednje naslednje število.

Primer 01: Preprost DENSE_RANK ()

Recimo, da imamo tabelo "zaposleni", in morate razvrstiti stolpce tabele, "Ime" in "Plača" v skladu s stolpcem "Ime". Ustvarili smo nov stolpec »dens_Rank« za shranjevanje ocen zapisov v njem. Po izvedbi spodnje poizvedbe imamo naslednje rezultate z drugačno uvrstitvijo glede na vse vrednosti.

>> SELECT IME, plača, DENSE_RANK () OVER (ORDER BY Name) dens_rank IZ podatkov.zaposleni;

Primer 02: DENSE_RANK () z uporabo PARTITION

Oglejmo si še en primerek, ki izid razdeli na segmente. V skladu s spodnjo sintakso dobljeni niz, razdeljen na frazo PARTITION BY, vrne s stavkom FROM, metoda DENSE_RANK () pa se nato razmaže v vsak odsek s pomočjo stolpca »Ime«. Nato se za vsak segment razmaže stavek ORDER BY, da se s stolpcem »Starost« določi nujna vrstica.

>> IZBERITE ime, starost, plačo, DENSE_RANK () NAD (RAZDELEK PO IMENU NAROČI PO starosti) new_rank IZ podatkov.zaposleni;

Po izvedbi zgornje poizvedbe lahko vidite, da imamo zelo različen rezultat v primerjavi z metodo Single thick_rank () v zgornjem primeru. Za vsako vrsticno vrednost imamo enako ponovljeno vrednost, kot lahko vidite spodaj. To je vezava na vrednosti ranga.

MySQL PERCENT_RANK ():

Dejansko gre za metodo razvrščanja v odstotkih (primerjalni rang), ki izračuna vrstice znotraj particije ali zbirke rezultatov. Ta metoda vrne seznam z lestvice vrednosti od nič do 1.

Primer 01: Preprost PERCENT_RANK ()

Z uporabo tabele "zaposleni" smo si ogledali primer preproste metode PERCENT_RANK (). Za to imamo spodnjo poizvedbo. Stolpec per_rank je bil ustvarjen z metodo PERCENT_Rank () za razvrščanje nabora rezultatov v obliki odstotkov. Podatke smo pridobivali v skladu z vrstnim redom razvrščanja stolpca »Starost« in nato razvrščali vrednosti iz te tabele. Rezultat poizvedbe za ta primer nam je dal odstotno uvrstitev za vrednosti, kot je predstavljena na spodnji sliki.

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

Primer 02: PERCENT_RANK () z uporabo PARTITION

Po preprostem primeru PERCENT_RANK () je zdaj na vrsti klavzula "PARTITION BY". Uporabljamo isto tabelo "zaposleni". Poglejmo si še en primerek, ki razdeli nabor rezultatov na odseke. Glede na spodnjo sintakso nastalo nastavljeno steno z izrazom PARTITION BY povrne izjava FROM, metoda PERCENT_RANK () pa se nato uporabi za razvrščanje vsakega vrstnega reda po stolpcu »Ime«. Na spodnji sliki lahko vidite, da rezultat vsebuje samo 0 in 1 vrednosti.

>> SELECT *, PERCENT_RANK () NAD (RAZDELITEV PO NAROČILU plače PO IMENU) per_rank IZ podatkov.zaposleni;

Zaključek:

Končno smo opravili vse tri funkcije razvrščanja za vrstice, ki se uporabljajo v MySQL, prek odjemalske lupine ukazne vrstice MySQL. V svoji študiji smo upoštevali tudi klavzulo simple in PARTITION BY.

Levi gumb miške ne deluje v sistemu Windows 10
Če s prenosnikom ali namiznim računalnikom uporabljate namensko miško, vendar gumb miške z levim klikom ne deluje v operacijskem sistemu Windows 10/8/...
Kazalec skoči ali se naključno premika med tipkanjem v sistemu Windows 10
Če ugotovite, da kazalec miške med tipkanjem v prenosnem računalniku ali računalniku Windows samodejno, naključno preskakuje ali se premika sam, vam l...
Kako obrniti smer drsenja miške in sledilne ploščice v sistemu Windows 10
Miška in Sledilna ploščicaRačunalništvo ni samo enostavno, ampak bolj učinkovito in manj zamudno. Življenja brez teh naprav si ne moremo predstavljati...