MySQL MariaDB

MySQL rea numbri akna funktsioon

MySQL rea numbri akna funktsioon
MySQL-is sisaldab RID NUMBER () meetod kronoloogilist numbrit iga partitsiooni sees oleva rea ​​jaoks. See on lihtsalt mingisugune aknafunktsioon. Ridade joon algab punktist 1 sektsioonis olevate ridade joonisega. Pidage meeles, et enne 8. versiooni.0, MySQL ei luba funktsiooni RIDA NUMBER (), kuid pakub seansimuutujat, mis aitab seda funktsiooni jäljendada. Mõistame MySQL ROW NUMBER () funktsionaalsusest rohkem selles juhendis ja toodame järjestikuse numbri tulemuste kogu igale reale. MySQL-is kasutatakse ROW_NUMBER () -meetodeid kas järgmiste lausetega:

Süntaks:

>> VALI veeru_nimi, ROW_NUMBER () ÜLE (PARTITION BY col_name, ORDER BY col_name) AS row_num FROM tabeli_nimi;

Avage rakendustest MySQL-i käsurea klientkoor ja sisestage sisselogimiseks parool.

Rea numbri funktsiooniga töötamise alustamiseks peate looma uue tabeli või kasutama vaiketabelit. Nagu on näidatud alloleval pildil, on skeemis „andmed” tabel „loomad”, milles on mõned kirjed. Toome selle kirjed, kasutades käsku SELECT.

>> SELECT * FROM andmetest.loomad;

Näide 01: ROW_NUMBER () kasutab lauset ORDER BY

Ridanumbri funktsiooni mõningate näidete täpsustamiseks kasutame sama tabelit. Võtame näite funktsioonist ROW_NUMBER (), millele järgneb Over (), kuid kasutame ainult klauslit ORDER BY. Oleme hankinud kõik kirjed, nummerdades ridu vastavalt veeru „Hind“ järjekorrale. Oleme veerule andnud nime “row_num”, mis salvestab rea numbrid. Proovime selleks teha järgmist käsku.

>> SELECT *, ROW_NUMBER () ÜLE (TELLI HINNA JÄRGI) AS-i reas_number andmetest.loomad;

Ülaltoodud päringu täitmisel näeme, et ridadele on määratud numbrid vastavalt veeru “Hind” sortimisjärjestusele. Võib arvata, et veeru ülaosas peaksid olema mõned väiksemad hinnad ja see peaks selle järgi sortima. Kuid klausel ORDER BY näeb väärtuste sortimiseks ainult veeru esimest numbrit või tähestikku.

Teostame sama päringu, millele järgneb klausel ORDER BY, kasutades veeru „Vanus” sorteerimisjärjestust. Väljund antakse veeru „Vanus” järgi.

>> SELECT *, ROW_NUMBER () ÜLE (TELLI VANUSE JÄRGI) AS-i reas_number FROM andmetest.loomad;

Näide 02: ROW_NUMBER (), kasutades lauset PARTITION BY

Tulemuste kontrollimiseks kasutame päringus ROW_NUMBER () ainsat klauslit PARTITION BY. Kirjeid, millele järgneb ROW_NUMBER () ja klausel OVER, toomasime päringut SELECT, samal ajal kui tabel jaotati veeru „Värv” järgi. Käivitage käsul shellis lisatud käsk allpool.

>> SELECT *, ROW_NUMBER () OVER (PARTITION by Color) AS row_num FROM andmetest.loomad;

Tulemuses näete, et ridade numeratsioon on jaotatud partitsioonidesse vastavalt värvide sortimise järjekorrale. Kuna meil on 4 väärtust värvi „must“ jaoks, mis võtab neli rida. Sellepärast on see saanud nelja rea ​​numbrid alates 1 kuni 4 ja vastupidi.

Proovige sama näidet, mis on seekord jaotatud veerus „Sugu”. Nagu me teame, on meil selles tabelis ainult kaks sugu, seetõttu moodustatakse 2 vaheseina. Emased hõivavad 9 rida, seetõttu on nende ridade number 1 kuni 9. Kuigi isastel on 8 väärtust, on sellepärast 1 kuni 8.

>> VALI *, ROW_NUMBER () ÜLE (JAGU SOO JÄRGI) AS-i reas_number FROM andmetest.loomad;

Näide 03: ROW_NUMBER () kasutades PARTITION BY & ORDER BY

Kaks ülaltoodud näidet oleme teinud MySQL käsureal, nüüd on aeg teha näide ROW_NUMBER () MySQL Workbench 8-s.0. Niisiis, avage MySQL Workbench 8.0 rakendustest. Töö alustamiseks ühendage MySQL Workbench kohaliku hosti juurte andmebaasiga.

MySQL Workbenchi vasakult küljelt leiate riba Schema, puhuge navigaatorit. Sellelt skeemiribalt leiate andmebaaside loendi. Andmebaaside loendi all on teil erinevad tabelid ja salvestatud protseduurid, nagu näete alloleval pildil. Andmebaasis on meil erinevad tabelid. Avame tabeli 'order1', kasutades päringualal käsku SELECT, et hakata seda funktsiooni ROW_NUMBER () rakendamiseks kasutama.

>> SELECT * FROM andmetest.tellimus1;

Tabel “order1” on kuvatud võrguvaates, nagu allpool näidatud. Näete, et sellel on 4 veeruvälja, id, Region, Status ja OrderNo. Toome kõik selle tabeli kirjed, kasutades samal ajal klausleid ORDER BY ja PARTITION BY, mõlemat korraga.

MySQL Workbench 8 päringualal.0, tippige allpool kuvatud päring. Päringut on alustatud klausliga SELECT, tuues kõik kirjed, millele järgneb funktsioon ROW_NUMBER () koos klausliga OVER. Pärast klauslit OVER oleme täpsustanud veeru „Olek”, mida jätkab lause „PARTITION BY”, et jagada tabel selle tabeli järgi partitsioonideks. Klauslit ORDER BY kasutatakse tabeli järjestamiseks kahanevas järjestuses vastavalt veergule „Region”. Ridanumbreid hoitakse veerus „row_num”. Selle käsu täitmiseks puudutage välgu ikooni.

Kuvatakse allpool kuvatud tulemus. Esiteks on tabel jaotatud kaheks osaks vastavalt veeru „Staatus“ väärtustele. Pärast seda on see esitatud veeru 'Region' kahanevas järjekorras ja partitsioonidele on määratud rea numbrid.

Järeldus:

Lõpuks oleme kõik vajalikud näited funktsiooni ROW_NUMBER () kasutamiseks MySQL Workbenchis ja MySQL käsurea kliendi kestas.

Parimad mängude jaoks mõeldud Linuxi distrod 2021. aastal
Linuxi operatsioonisüsteem on oma algsest, lihtsast, serveripõhisest välimusest kaugele jõudnud. See operatsioonisüsteem on viimastel aastatel tohutul...
Kuidas Linuxis oma mänguseanssi jäädvustada ja voogesitada
Varem peeti mängude mängimist ainult hobiks, kuid aja jooksul kasvas mängutööstus tehnoloogia ja mängijate arvu osas tohutult. Mängupublik on veebimän...
Parimad mängud, mida saab mängida käte jälgimisega
Oculus Quest tutvustas hiljuti suurepärast ideed käsitsi jälgimisest ilma kontrolleriteta. Üha suurema hulga mängude ja tegevustega, mis toetavad kas ...