- V njem bo uporabljena klavzula Over ().
- Klavzula ORDERS BY razvrsti rezultat po vrstnem redu razvrščanja v omenjenem stolpcu.
Sintaksa:
>> IZBERI ime_cola, ROW_NUMBER () NAD (RAZDELEK PO ime_cola, NAROČI PO Ime_cola) KOT številka_ vrstice IZ ime_tabele;Odprite lupino odjemalca ukazne vrstice MySQL iz aplikacij in vnesite geslo za prijavo.
Če želite začeti delati s funkcijo številke vrstic, morate ustvariti novo tabelo ali uporabiti privzeto tabelo. Kot je predstavljeno na spodnji sliki, imamo v shemi "podatki" tabelo "živali" z nekaj zapisi v njej. Pridobimo njegove zapise z uporabo ukaza SELECT.
>> IZBERI * IZ podatkov.živali;
Primer 01: ROW_NUMBER () z uporabo stavka ORDER BY
V isti tabeli bomo uporabili nekaj primerov funkcije števila vrstic. Vzemimo primer funkcije ROW_NUMBER (), ki ji sledi Over (), pri čemer uporabljamo le stavek ORDER BY. Med zapisovanjem vrstic smo vzeli vse zapise v skladu z vrstnim redom stolpca "Cena". Stolpcu smo dali ime »številka_vrstice«, v katerem bodo shranjene številke vrstice. Poskusimo spodnji ukaz, da to storimo.
>> SELECT *, ROW_NUMBER () OVER (NAROČI PO CENI) KOT vrstica_številka OD podatkov.živali;Po izvedbi zgornje poizvedbe lahko vidimo, da so bile vrstice dodeljene s številkami glede na vrstni red razvrščanja stolpca "Cena". Morda mislite, da bi morale biti nekatere zgornje cene na vrhu stolpca in bi morale biti razvrščene glede na to. Toda člen ORDER BY vidi samo prvo številko ali abecedo stolpca za razvrščanje vrednosti.
Izvedimo isto poizvedbo, ki ji sledi stavek ORDER BY, pri čemer uporabimo vrstni red razvrščanja stolpca »Starost«. Rezultat bo podan v skladu s stolpcem "Starost".
>> SELECT *, ROW_NUMBER () OVER (ORDER BY Age) KOT vrstica_številka OD podatkov.živali;
Primer 02: ROW_NUMBER () z uporabo stavka PARTITION BY
Za preverjanje rezultatov bomo uporabili edino klavzulo PARTITION BY v poizvedbi ROW_NUMBER (). Poizvedbo SELECT smo uporabili za pridobivanje zapisov, ki jim sledita stavek ROW_NUMBER () in OVER, medtem ko smo razdelili tabelo v skladu s stolpcem »Barva«. Izvedite dodani spodnji ukaz v ukazni lupini.
>> SELECT *, ROW_NUMBER () NAD (RAZDELITEV PO barvi) KOT vrstica_številka OD podatkov.živali;V rezultatu lahko vidite, da je bilo oštevilčenje vrstic dodeljeno particijam glede na vrstni red razvrščanja barv. Ker imamo 4 vrednosti za barvo "Črna", ki traja 4 vrstice. Zato ima štiri vrstice s številkami od 1 do 4 in obratno.
Poskusite isti primer, ki je bil tokrat razdeljen na stolpec "Spol". Kot vemo, imamo v tej tabeli samo dva spola, zato bosta oblikovani 2 particiji. Samice zasedajo 9 vrstic, zato ima vrstice oštevilčene od 1 do 9. Medtem ko imajo moški 8 vrednosti, ima zato od 1 do 8.
>> IZBERI *, ROW_NUMBER () NAD (RAZDELITEV PO SPOLU) KOT vrstica_številka IZ podatkov.živali;
Primer 03: ROW_NUMBER () Uporaba PARTITION BY & ORDER BY
Zgornja dva primera smo naredili v ukazni vrstici MySQL, zdaj je čas, da naredimo primer ROW_NUMBER () v MySQL Workbench 8.0. Torej, odprite MySQL Workbench 8.0 od aplikacij. Za začetek delovanja povežite MySQL Workbench z lokalno korensko bazo podatkov gostitelja.
Na levi strani MySQL Workbencha boste našli vrstico shem, razstrelite navigator. V tej vrstici sheme najdete seznam baz podatkov. Na seznamu baz podatkov boste imeli različne tabele in shranjene postopke, kot lahko vidite na spodnji sliki. V bazi podatkov imamo različne tabele "podatki". Tabelo 'order1' bomo odprli z ukazom SELECT v območju poizvedbe, da jo začnemo uporabljati za izvajanje funkcije ROW_NUMBER ().
>> IZBERI * IZ podatkov.naročilo1;
Tabela “order1” je prikazana v mrežnem pogledu, kot je prikazano spodaj. Ogledate si lahko, da ima 4 polja stolpcev, id, Region, Status in OrderNo. Vse zapise v tej tabeli bomo prenesli, medtem ko bomo uporabljali klavzuli ORDER BY in PARTITION BY, oba hkrati.
Na področju poizvedbe MySQL Workbench 8.0, vnesite spodnjo prikazano poizvedbo. Poizvedba se je začela s stavkom SELECT, pri čemer so bili zajeti vsi zapisi, ki jim je sledila funkcija ROW_NUMBER (), skupaj s stavkom OVER. Po stavku OVER smo določili stolpec »Status«, ki je nadaljevan s stavkom »PARTITION BY«, da razdelimo tabelo na particije v skladu s to tabelo. Stavek ORDER BY se uporablja za razporeditev tabele v padajočem vrstnem redu v skladu s stolpcem "Regija". Številke vrstic bodo shranjene v stolpcu »številka_vrstice«. Dotaknite se ikone bliskavice, da izvedete ta ukaz.
Prikazan bo spodnji prikaz rezultata. Najprej je bila tabela ločena na dva dela glede na vrednosti stolpca "Status". Po tem je bil predstavljen v padajočem vrstnem redu stolpca 'Regija' in particije so bile dodeljene s številkami vrstic.
Zaključek:
Na koncu smo zaključili vse potrebne primere uporabe funkcije ROW_NUMBER () v MySQL Workbench in odjemalski lupini ukazne vrstice MySQL.