„MySQL MariaDB“

„MySQL RANK“ lango funkcija

„MySQL RANK“ lango funkcija
Reitingavimo metodas priskiria rangą rinkinio rezultato skaidinyje kiekvienai eilutei. Eilės reitingas nustatomas padidinus vieną eilių skaičių iš prieš ją einančios eilės. „MySQL“ naudoja reitingavimo funkciją, kuri padeda vienam reitingui schemos skaidinyje iš eilės. „MySQL“ reitingavimo metodai iš tikrųjų yra pusiau lango metodo dalis. Reitingavimo metodus naudosite „MySQL“ su bet kuriais tolesniais punktais:

Iš viso yra trijų rūšių reitingavimo funkcijos:

„MySQL RANK“ ():

Tai metodas, suteikiantis reitingą skaidinio ar rezultatų masyvo viduje su tarpai vienoje eilutėje. Chronologiškai eilučių reitingas nėra paskirstomas visą laiką (t.e., padidėjo vienu iš ankstesnės eilės). Net kai tarp kelių verčių yra lygus taškas, „rank“ () naudingumo koeficientas jai taiko tą patį reitingą. Be to, jo ankstesnis rangas ir kartotinių skaičių skaičius gali būti vėlesnis rango numeris.

Norėdami suprasti reitingą, atidarykite komandinės eilutės kliento apvalkalą ir įveskite „MySQL“ slaptažodį, kad pradėtumėte jį naudoti.

Tarkime, kad duomenų bazėje „duomenys“ turime žemiau esančią lentelę pavadinimu „tas pats“ su kai kuriais įrašais.

>> PASIRINKTI * IŠ duomenų.tas pats;

01 pavyzdys: paprastas RANK ()

Žemiau mes naudojome rango funkciją komandoje SELECT. Ši užklausa pasirenka stulpelį „id“ iš lentelės „tas pats“, o reitinguoja jį pagal stulpelį „id“. Kaip matote, reitingavimo stulpeliui suteikėme pavadinimą, kuris yra „my_rank“. Reitingas dabar bus saugomas šiame stulpelyje, kaip parodyta žemiau.

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

02 pavyzdys: RANK () naudojant „PARTITION“

Tarkime, kad duomenų bazėje „duomenys“ yra kita lentelė „darbuotojas“ su šiais įrašais. Turėkime dar vieną egzempliorių, kuris padalija rezultatų rinkinį į segmentus.

>> PASIRINKTI * IŠ duomenų.darbuotojas;

Norint sunaudoti RANK () metodą, paskesnėje instrukcijoje kiekvienai eilutei priskiriamas rangas ir rezultatas padalijamas į skaidinius, naudojant „Amžius“ ir rūšiuojant juos atsižvelgiant į „Atlyginimą“. Ši užklausa atnešė visus įrašus, o reitingavo stulpelyje „new_rank“. Šios užklausos išvestį galite pamatyti žemiau. Ji surūšiavo lentelę pagal „Atlyginimą“ ir padalijo ją pagal „Amžių“.

>> PASIRINKITE *, RANK () VIRŠ (PASKIRSTYMAS PAGAL amžių UŽSAKYMAS PAGAL atlyginimą) new_rank FROM.darbuotojas;

„MySQL DENSE_Rank“ ():

Tai yra funkcionalumas, be jokių skylių, nustato rangą kiekvienoje eilutėje divizijos ar rezultatų rinkinio viduje. Eilučių reitingas dažniausiai paskirstomas eilės tvarka. Kartais jūs turite susiejimą tarp verčių, todėl jis yra priskiriamas tiksliui rangui pagal tankų rangą, o paskesnis jo rangas yra kitas sekantis skaičius.

01 pavyzdys: paprasta DENSE_RANK ()

Tarkime, kad turime lentelę „darbuotojas“, o lentelės stulpelius „Vardas“ ir „Atlyginimas“ turite suskirstyti pagal stulpelį „Vardas“. Sukūrėme naują stulpelį „dens_Rank“, kuriame išsaugosime įrašų įvertinimą. Vykdydami žemiau pateiktą užklausą, turime šiuos rezultatus, kurių reitingas skiriasi nuo visų verčių.

>> PASIRINKITE vardą, atlyginimą, DENSE_RANK () OVER (ORDER BY Name) dens_rank FROM duomenys.darbuotojas;

02 pavyzdys: DENSE_RANK () naudojant „PARTITION“

Pažiūrėkime dar vieną atvejį, kuris padalija rezultatų rinkinį į segmentus. Pagal žemiau pateiktą sintaksę gautą rinkinį, suskirstytą pagal frazę PARTITION BY, grąžina sakinys FROM, o metodas DENSE_RANK () tepamas kiekvienam skyriui naudojant stulpelį „Name“. Tada kiekvienam segmentui frazė „ORDER BY“ tepama, norint nustatyti eilučių būtinumą naudojant stulpelį „Amžius“.

>> PASIRINKITE vardą, amžių, atlyginimą, DENSE_RANK () OVER (PARTITION BY Name ORDER BY Age) new_rank FROM data.darbuotojas;

Vykdydami pirmiau pateiktą užklausą, galite pamatyti, kad mes turime labai skirtingą rezultatą, palyginti su „Single dense_rank ()“ metodu aukščiau pateiktame pavyzdyje. Kiekvienos eilutės reikšmė turi tą pačią pakartotinę vertę, kaip matote žemiau. Tai rango verčių kaklaraištis.

„MySQL PERCENT_RANK“ ():

Iš tikrųjų tai yra procentinio reitingavimo (lyginamojo rango) metodas, apskaičiuojantis eilutes skaidinio ar rezultatų rinkinio viduje. Šis metodas pateikia sąrašą iš vertės skalės nuo nulio iki 1.

01 pavyzdys: paprasta PERCENT_RANK ()

Naudodami lentelę „darbuotojas“, mes nagrinėjome paprasto PERCENT_RANK () metodo pavyzdį. Tam turime pateiktą žemiau pateiktą užklausą. „Per_rank“ stulpelis sugeneruotas metodu PERCENT_Rank (), kad rezultatas būtų įvertintas procentine forma. Duomenis gaudavome pagal stulpelio „Amžius“ rūšiavimo tvarką ir tada reitingavome vertes iš šios lentelės. Užklausos rezultatas šiame pavyzdyje suteikė procentinę reikšmių reitingą, pateiktą žemiau esančiame paveikslėlyje.

>> SELECT *, PERCENT_RANK () OVER (ORDER BY Age) per_rank FROM duomenys.darbuotojas;

02 pavyzdys: PERCENT_RANK () naudojant „PARTITION“

Atlikę paprastą PERCENT_RANK () pavyzdį, atėjo eilė sąlygai „PARTITION BY“. Mes naudojome tą pačią lentelę „darbuotojas“. Pažvelkime dar kartą į kitą egzempliorių, kuris padalija rezultatų rinkinį į dalis. Atsižvelgiant į žemiau pateiktą sintaksę, gautoji išraiška PARTITION BY išstumta siena kompensuojama deklaracija FROM, taip pat metodas PERCENT_RANK () naudojamas kiekvienos eilės eilės eiliškumui pagal stulpelį „Pavadinimas“. Žemiau pateiktame paveikslėlyje galite pamatyti, kad rezultatų rinkinyje yra tik 0 ir 1 reikšmės.

>> PASIRINKITE *, PERCENT_RANK () OVER (Padalijimas pagal atlyginimo užsakymą pagal pavadinimą) per_rank iš duomenų.darbuotojas;

Išvada:

Galiausiai mes atlikome visas tris eilių, naudojamų „MySQL“, eiliškumo funkcijas per „MySQL“ komandinės eilutės kliento apvalkalą. Be to, savo tyrime atsižvelgėme ir į paprastą, ir į „PARTITION BY“ sąlygą.

Įdiekite naujausią „OpenRA“ strategijos žaidimą „Ubuntu Linux“
„OpenRA“ yra „Free / Free Real Time Strategy“ žaidimų variklis, atkuriantis ankstyvuosius „Westwood“ žaidimus, tokius kaip klasikinis „Command & Conqu...
Įdiekite naujausią „Dolecin Emulator“, skirtą „Gamecube“ ir „Wii“, sistemoje „Linux“
„Delfinų emuliatorius“ leidžia žaisti pasirinktus „Gamecube“ ir „Wii“ žaidimus „Linux“ asmeniniuose kompiuteriuose (PC). „Dolphin Emulator“ yra laisv...
Kaip naudoti „GameConqueror Cheat Engine“ sistemoje „Linux“
Straipsnyje pateikiamas „GameConqueror“ apgaulės variklio naudojimo „Linux“ vadove. Daugelis žaidėjų, žaidžiančių sistemoje „Windows“, dažnai naudoja ...