- Menetelmät toimivat aina Over () -lausekkeella.
- Kronologisessa järjestyksessä he jakavat kullekin riville arvon.
- ORDER BY -toiminnosta riippuen toiminnot antavat sijoituksen jokaiselle riville.
- Riveillä näyttää olevan aina sijoitus niille, alkaen yhdestä jokaiselle uudelle osiolle.
Sijoitustoimintoja on yhteensä kolmenlaisia, seuraavasti:
- Sijoitus
- Tiheä sijoitus
- Prosenttiluokitus
MySQL RANK ():
Tämä on menetelmä, joka antaa sijoituksen osion tai tulosryhmän sisällä kanssa aukkoja per rivi. Aikajärjestyksessä rivien sijoitusta ei jaeta koko ajan (i.e., kasvanut yhdellä edellisestä rivistä). Vaikka sinulla on tasapeli usean arvon välillä, rank () -apuohjelma soveltaa siihen samaa luokitusta. Myös sen aiempi sijoitus plus toistuvien numeroiden luku voi olla seuraava sijoitusnumero.
Ymmärtääksesi sijoituksen, avaa komentorivin asiakaskuori ja kirjoita MySQL-salasanasi aloittaaksesi sen käytön.
Oletetaan, että meillä on alla oleva taulukko nimeltä "sama" tietokannassa "data", jossa on joitain tietueita.
>> VALITSE * FROM-tiedoista.sama;
Esimerkki 01: Yksinkertainen RANK ()
Alla olemme käyttäneet Rank-toimintoa SELECT-komennossa. Tämä kysely valitsee sarakkeen id taulukosta "sama" samalla kun se luokitellaan sarakkeen "id" mukaan. Kuten näette, olemme antaneet ranking-sarakkeelle nimen, joka on "my_rank". Sijoitus tallennetaan nyt tähän sarakkeeseen alla olevan kuvan mukaisesti.
>> SELECT id, RANK () OVER (ORDER BY id) my_rank FATA.sama;
Esimerkki 02: RANK () käyttäen PARTITION
Oletetaan toinen taulukko "työntekijä" tietokannassa "data", jolla on seuraavat tietueet. Olkaamme toinen instanssi, joka jakaa tulosjoukon segmentteihin.
>> VALITSE * FROM-tiedoista.työntekijä;
RANK () -menetelmän käyttämiseksi seuraava käsky antaa sijoituksen jokaiselle riville ja jakaa tulosjoukon osioihin käyttämällä "Ikä" ja lajittelemalla ne "Palkan" mukaan. Tämä kysely on hakenut kaikkia tietueita, kun se sijoittuu sarakkeeseen "new_rank". Näet tämän kyselyn lähdön alla. Se on lajitellut taulukon palkan mukaan ja jakanut sen iän mukaan.
>> VALITSE *, SIJOITUS () YLITTÄVÄ (JAKAUMA IkäJÄRJESTYS PALKAN PITUUDELLA) new_rank FROM data.työntekijä;
MySQL DENSE_Rank ():
Tämä on toiminto missä, ilman reikiä, määrittää sijoituksen kutakin riviä kohti jako- tai tulosjoukossa. Rivien sijoitus jaetaan useimmiten peräkkäisessä järjestyksessä. Toisinaan sinulla on tasa-arvo arvojen välillä, ja siksi se on määritetty tarkalle sijalle tiheän sijoituksen perusteella, ja sen seuraava sijoitus on seuraava seuraava numero.
Esimerkki 01: Yksinkertainen DENSE_RANK ()
Oletetaan, että meillä on taulukko "työntekijä", ja sinun on järjestettävä taulukon sarakkeet, "Nimi" ja "Palkka" sarakkeen "Nimi" mukaan. Olemme luoneet uuden sarakkeen "dens_Rank" tallentaaksesi siihen tietueiden luokituksen. Alla olevan kyselyn suorittamisen jälkeen meillä on seuraavat tulokset, joiden sijoitus eroaa kaikista arvoista.
>> VALITSE Nimi, Palkka, DENSE_RANK () OVER (ORDER BY Name) dens_rank FROM data.työntekijä;
Esimerkki 02: DENSE_RANK () käyttäen PARTITION
Katsotaanpa toinen esimerkki, joka jakaa tulosjoukon segmentteihin. Alla olevan syntaksin mukaan FROM-käsky palauttaa tuloksena olevan osion, joka on jaettu PARTITION BY-lauseella, ja DENSE_RANK () -menetelmä smearoidaan sitten kullekin osalle käyttämällä saraketta "Name". Sitten kullekin segmentille ORDER BY -lause smear määrittää rivien välttämättömyys sarakkeella "Age".
>> VALITSE Nimi, Ikä, Palkka, DENSE_RANK () YLITTY (OSIO NIMEN JÄRJESTYS JÄLLEEN Ikä) new_rANK FROM tiedoista.työntekijä;Yllä olevan kyselyn suorittamisen jälkeen näet, että meillä on hyvin erilainen tulos verrattuna edellisen esimerkin Single dense_rank () -menetelmään. Meillä on sama toistuva arvo jokaiselle riviarvolle, kuten alla näkyy. Se on sijoitusarvo.
MySQL PERCENT_RANK ():
Se on todellakin prosenttiosuusmenetelmä (vertaileva sijoitus), joka laskee rivit osion tai tuloskokoelman sisällä. Tämä menetelmä palauttaa luettelon joko arvoluokasta nolla - 1.
Esimerkki 01: Yksinkertainen PERCENT_RANK ()
Käyttämällä taulukkoa "työntekijä" olemme tarkastelleet yksinkertaisen PERCENT_RANK () -menetelmän esimerkkiä. Meillä on alla annettu kysely tälle. Per_rank -sarake on luotu PERCENT_Rank () -menetelmällä asetetun tuloksen sijoittamiseksi prosenttilomakkeeseen. Olemme hakeneet tietoja sarakkeen "Ikä" lajittelujärjestyksen mukaan ja sitten olemme järjestäneet arvot tästä taulukosta. Tämän esimerkin kyselytulos antoi meille prosentuaalisen sijoituksen arvoille alla olevan kuvan mukaisesti.
>> SELECT *, PERCENT_RANK () OVER (ORDER BY Age) per_rank FROM data.työntekijä;
Esimerkki 02: PERCENT_RANK () käyttäen PARTITION
Kun olet tehnyt yksinkertaisen esimerkin PERCENT_RANK (), nyt on vuoro "PARTITION BY" -lausekkeelle. Olemme käyttäneet samaa taulukkoa "työntekijä". Otetaan toinen vilkaisu toisesta instanssista, joka jakaa tulosjoukon osiin. Alla olevasta syntaksista johtuen tuloksena oleva osio BYIT-lausekkeella korvataan FROM-ilmoituksella, ja PERCENT_RANK () -menetelmää käytetään sitten luokittelemaan kukin rivijärjestys sarakkeella "Nimi". Alla olevassa kuvassa näet, että tulosjoukko sisältää vain 0 ja 1 arvot.
>> VALITSE *, PERCENT_RANK () YLITTÄVÄ (OSAKE palkkatilausnimen mukaan nimen mukaan).työntekijä;
Päätelmä:
Lopuksi olemme tehneet kaikki kolme luokitustoimintoa MySQL: ssä käytetyille riveille MySQL-komentorivin asiakaskuoren kautta. Lisäksi olemme ottaneet tutkimuksessamme huomioon sekä yksinkertaisen että PARTITION BY -lausekkeen.