MySQL MariaDB

Funkcija okna številke vrstice MySQL

Funkcija okna številke vrstice MySQL
V MySQL metoda ROW NUMBER () vsebuje kronološko številko za vsako vrstico znotraj particije. Je le nekakšna okenska funkcija. Številka vrstic se začne pri 1 s številko vrstic znotraj particije. Ne pozabite, pred različico 8.0, MySQL ne dovoljuje funkcije ROW NUMBER (), vendar ponuja spremenljivko seje, ki pomaga posnemati to funkcijo. V tem priročniku bomo razumeli več o funkciji MySQL ROW NUMBER () in ustvarili zaporedno številko za vsako vrstico v zbirki rezultatov. V MySQL se metode ROW_NUMBER () uporabljajo z naslednjimi stavki:

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.

S temi brezplačnimi orodji dodajte gibe miške v sistem Windows 10
V zadnjih letih so se računalniki in operacijski sistemi močno razvili. Včasih so morali uporabniki uporabljati ukaze za krmarjenje po upraviteljih da...
Nadzirajte in upravljajte gibanje miške med več monitorji v sistemu Windows 10
Upravitelj miške z dvojnim zaslonom vam omogoča nadzor in konfiguriranje gibanja miške med več monitorji, tako da upočasni gibanje blizu meje. Windows...
WinMouse vam omogoča prilagajanje in izboljšanje premikanja kazalca miške v računalniku z operacijskim sistemom Windows
Če želite izboljšati privzete funkcije kazalca miške, uporabite brezplačno programsko opremo WinMouse. Dodaja več funkcij, s pomočjo katerih boste kar...