„MySQL MariaDB“

„MySQL“ eilutės numerio lango funkcija

„MySQL“ eilutės numerio lango funkcija
„MySQL“ metodas ROW NUMBER () apima chronologinį skaičių kiekvienai eilutei, esančiai skaidinyje. Tai tik tam tikra lango funkcija. Eilučių skaičius prasideda nuo 1 su eilučių skaičiumi skaidinyje. Atminkite, kad prieš 8 versiją.0, „MySQL“ neleidžia funkcijos ROW NUMBER (), tačiau siūlo sesijos kintamąjį, kuris padeda imituoti šią funkciją. Šiame vadove daugiau sužinosime apie „MySQL ROW NUMBER“ () funkcionalumą ir kiekvienoje rezultatų rinkinio eilutėje pateiksime nuoseklų skaičių. „MySQL“ metodai ROW_NUMBER () naudojami su kitomis išlygomis:

Sintaksė:

>> PASIRINKITE col_name, ROW_NUMBER () OVER (PARTITION BY col_name, ORDER BY col_name) AS row_num FROM table_name;

Atidarykime „MySQL“ komandinės eilutės kliento apvalkalą iš programų ir įveskite slaptažodį, kad prisijungtumėte.

Norėdami pradėti dirbti su eilutės numerio funkcija, turite sukurti naują lentelę arba naudoti numatytąją lentelę. Kaip parodyta žemiau esančiame paveikslėlyje, schemoje „duomenys“ turime lentelę „gyvūnai“, kurioje yra keletas įrašų. Paimkime jo įrašus naudodami komandą SELECT.

>> PASIRINKTI * IŠ duomenų.gyvūnai;

01 pavyzdys: ROW_NUMBER () naudojant sąlygą ORDER BY

Tą pačią lentelę naudosime išsamiai aprašydami keletą eilutės numerio funkcijos pavyzdžių. Mes imamės funkcijos ROW_NUMBER (), po kurios yra Over (), pavyzdžio, tuo pačiu naudodami tik sąlygą ORDER BY. Mes surašėme visus įrašus, o eilutes sunumeravome pagal stulpelio „Kaina“ tvarką. Stulpeliui suteikėme pavadinimą „row_num“, kuriame bus saugomi eilutės numeriai. Pabandykime tai padaryti žemiau esančia komanda.

>> PASIRINKITE *, ROW_NUMBER () OVER (UŽSAKYTI PAGAL kainą) AS row_num FROM duomenys.gyvūnai;

Vykdydami pirmiau pateiktą užklausą, galime pamatyti, kad eilutės buvo priskirtos skaičiais pagal stulpelio „Kaina“ rūšiavimo tvarką. Galite pagalvoti, kad stulpelio viršuje turėtų būti keletas mažesnių kainų, kurios turėtų būti rūšiuojamos pagal tai. Tačiau sąlyga „ORDER BY“ mato tik pirmąjį stulpelio skaičių ar abėcėlę, kad būtų rūšiuojamos vertės.

Vykdykime tą pačią užklausą, po kurios sakoma ORDER BY, naudojant stulpelio „Amžius“ rūšiavimo tvarką. Rezultatas bus pateiktas pagal stulpelį „Amžius“.

>> PASIRINKITE *, ROW_NUMBER () OVER (UŽSAKYTI PAGAL amžių) AS row_num FROM duomenys.gyvūnai;

02 pavyzdys: ROW_NUMBER () naudojant sąlygą „PARTITION BY“

Rezultatams tikrinti naudosime vienintelę užklausos ROW_NUMBER () sąlygą „PARTITION BY“. Mes naudojome užklausą SELECT, kad gautume įrašus, po kurių nurodyta ROW_NUMBER () ir OVER sąlyga, o lentelę padalijome pagal stulpelį „Spalva“. Komandos apvalkale vykdykite pridėtą žemiau komandą.

>> SELECT *, ROW_NUMBER () OVER (PARTITION BY Color) AS row_num FROM duomenys.gyvūnai;

Rezultate galite pamatyti, kad eilučių numeracija buvo priskirta pertvaroms pagal spalvų rūšiavimo tvarką. Kadangi turime 4 „juodos“ spalvos vertes, kurios užima 4 eilutes. Štai kodėl jis turi keturių eilučių numerius nuo 1 iki 4 ir atvirkščiai.

Išbandykite tą patį pavyzdį, kurį šį kartą suskirstė stulpelis „Lytis“. Kaip žinome, šioje lentelėje turime tik dvi lytis, todėl bus suformuotos 2 pertvaros. Patelės užima 9 eilutes, todėl jos eilutės numeruojamos nuo 1 iki 9. Nors vyrai turi 8 reikšmes, todėl jie turi nuo 1 iki 8.

>> PASIRINKITE *, ROW_NUMBER () OVER (Padalijimas pagal lytį) AS row_num FROM duomenys.gyvūnai;

03 pavyzdys: ROW_NUMBER () naudojant PARTITION BY & ORDER BY

„MySQL“ komandinėje eilutėje atlikome minėtus du pavyzdžius, dabar atėjo laikas atlikti „ROW_NUMBER“ () pavyzdį „MySQL Workbench 8“.0. Taigi atidarykite „MySQL Workbench 8“.0 iš programų. Norėdami pradėti dirbti, prijunkite „MySQL Workbench“ su vietine pagrindinio kompiuterio šaknies duomenų baze.

Kairėje „MySQL Workbench“ pusėje rasite juostą „Schema“, pūskite navigatorių. Šioje schemos juostoje rasite duomenų bazių sąrašą. Duomenų bazių sąraše turėsite skirtingas lenteles ir saugomas procedūras, kaip matote žemiau esančiame paveikslėlyje. Mūsų duomenų bazėje „duomenys“ yra skirtingos lentelės. Atidarysime lentelę „order1“ naudodami komandą SELECT užklausos srityje, kad pradėtume ją naudoti ROW_NUMBER () funkcijos įgyvendinimui.

>> PASIRINKTI * IŠ duomenų.užsakymas1;

Lentelė „order1“ buvo rodoma tinklelio rodinyje, kaip parodyta žemiau. Matote, kad jame yra 4 stulpelių laukai, id, Region, Status ir OrderNo. Mes gausime visus šios lentelės įrašus, tuo pačiu metu naudodami sąlygas „ORDER BY“ ir „PARTITION BY“.

„MySQL Workbench 8“ užklausų srityje.0, įveskite žemiau rodomą užklausą. Užklausa buvo pradėta naudojant sąlygą SELECT, gaunant visus įrašus, po kurių funkcija ROW_NUMBER () kartu su sakiniu OVER. Po sąlyga OVER nurodėme stulpelį „Būsena“, kurį vykdėme sakinyje „PARTITION BY“, kad lentelė būtų padalyta į skaidinius pagal šią lentelę. Sąlyga ORDER BY naudojama lentelės išdėstymui mažėjančia tvarka pagal stulpelį „Regionas“. Eilučių numeriai bus laikomi stulpelyje „row_num“. Norėdami įvykdyti šią komandą, bakstelėkite blykstės piktogramą.

Bus parodytas žemiau pateiktas rezultatas. Pirmiausia lentelė buvo padalyta į dvi dalis pagal stulpelio „Būsena“ vertes. Po to jis buvo pateiktas mažėjančia stulpelio „Region“ tvarka ir pertvaroms buvo priskirti eilių numeriai.

Išvada:

Galiausiai mes užpildėme visus būtinus pavyzdžius naudodami funkciją ROW_NUMBER () „MySQL Workbench“ ir „MySQL“ komandų eilutės kliento apvalkale.

5 geriausios žaidimų fiksavimo kortos
Visi mes matėme ir pamėgome srautinius žaidimus „YouTube“. „PewDiePie“, „Jakesepticye“ ir „Markiplier“ yra tik vieni iš geriausių žaidėjų, kurie uždir...
Kaip sukurti žaidimą „Linux“
Prieš dešimtmetį nedaugelis „Linux“ vartotojų numatė, kad jų mėgstama operacinė sistema vieną dieną bus populiari komercinių vaizdo žaidimų žaidimų pl...
Atvirojo kodo komercinių žaidimų variklių uostai
Nemokami atvirojo kodo ir įvairių platformų žaidimų varikliai gali būti naudojami žaidžiant senus ir kai kuriuos gana naujus žaidimų pavadinimus. Šiam...