MySQL MariaDB

MySQL RANK ablakfunkció

MySQL RANK ablakfunkció
A Ranglista módszer minden sorhoz hozzárendel egy rangot egy halmaz eredményének partícióján belül. Egy sor rangsorát úgy határozzuk meg, hogy egy sor számot növekszünk az azt megelőző sorból. A MySQL olyan rangsorolási szolgáltatást használ, amely egy séma partíciónként egy-egy rangot segít. A MySQL-ben a minősítési módszerek valóban az ablak metódusának félig részei. Az osztályozási módszereket a MySQL-ben fogja használni, a következő bekezdések bármelyikével:

Összesen háromféle rangsorolási funkció létezik, az alábbiak szerint:

MySQL RANK ():

Ez egy módszer, amely rangot ad a partíción vagy az eredménytömbön belül val vel rések soronként. Időrend szerint a sorok rangsorolása nem kerül felosztásra állandóan (azaz.e., eggyel nőtt az előző sorból). Még akkor is, ha több érték között döntetlen van, a rang () segédprogram ugyanezt a rangsort alkalmazza rá. Előző rangja plusz az ismételt számok száma lehet a következő rangszám.

A rangsorolás megértéséhez nyissa meg a parancssori ügyfélhéjat, és írja be MySQL jelszavát a használat megkezdéséhez.

Tegyük fel, hogy van egy „ugyanaz” nevű táblázat egy adatbázis „adatok” részén, néhány rekorddal.

>> SELECT * FROM adatok.azonos;

01. példa: Egyszerű RANK ()

Az alábbiakban a Rang függvényt használtuk a SELECT parancsban. Ez a lekérdezés az „azonos” oszlopból választja ki az „id” oszlopot, miközben az „id” oszlop szerint rangsorolja. Amint láthatja, a rangsor oszlopnak nevet adtunk, ami „saját_rang”. A rangsor mostantól ebben az oszlopban lesz tárolva, az alábbiak szerint.

>> SELECT id, RANK () OVER (ORDER BY id) my_rank FROM fata.azonos;

02. példa: RANK () a PARTITION használatával

Tegyünk fel egy másik „alkalmazott” táblázatot az adatbázis „adataiban” a következő rekordokkal. Legyen egy másik példányunk, amely felosztja az eredményhalmazt szegmensekre.

>> SELECT * FROM adatok.munkavállaló;

A RANK () metódus elfogyasztásához a következő utasítás minden sorhoz hozzárendeli a rangot, és az eredményt partíciókra osztja az „Élet” felhasználásával és a „Fizetés” függvényében rendezéssel. Ez a lekérdezés az összes rekordot lekérte, miközben az „új_rang” oszlopban rangsorolt. A lekérdezés kimenetét alább láthatja. A táblázatot „Fizetés” szerint rendezte, és „Kor” szerint osztotta fel.

>> KIVÁLASZTÁS *, RANK () TELJES (FELOSZTÁS Életkor szerinti rendezés szerint Fizetés alapján) new_rank.munkavállaló;

MySQL DENSE_Rank ():

Ez egy olyan funkció, ahol, lyukak nélkül, meghatároz egy rangot minden osztáson vagy eredményhalmazon belül. A sorok rangsorolását leggyakrabban egymás után rendezik. Időnként van egy bekötés az értékek között, és ezért a sűrű rang a pontos ranghoz rendeli, és az azt követő rang a következő következő szám.

01. példa: Egyszerű DENSE_RANK ()

Tegyük fel, hogy van egy „alkalmazott” tábla, és a „Név” és a „Fizetés” oszlopokat a „Név” oszlop szerint kell rangsorolni. Létrehoztunk egy új „dens_Rank” oszlopot, amely tárolja benne a rekordok minősítését. Az alábbi lekérdezés végrehajtása után a következő eredményeket kapjuk, az összes értéktől eltérő rangsorolással.

>> SELECT Név, fizetés, DENSE_RANK () OVER (ORDER BY Name) dens_rank FROM adatok.munkavállaló;

02. példa: DENSE_RANK () a PARTITION használatával

Lássunk egy másik példányt, amely az eredménykészletet szegmensekre bontja. Az alábbi szintaxis szerint a PARTITION BY kifejezéssel particionált kapott halmazt a FROM utasítás adja vissza, majd a DENSE_RANK () metódust minden szakaszra bekenjük a „Name” oszlop segítségével. Ezután az egyes szegmenseknél az ORDER BY kifejezés elkenődik, hogy meghatározza a sorok imperatívumát az „Élet” oszlop segítségével.

>> KIVÁLASZTÁS Név, Kor, Fizetés, DENSE_RANK () TÖBB (PARTITION BY Name ORDER Age szerint) new_rANK FROM adatok.munkavállaló;

A fenti lekérdezés végrehajtása után láthatja, hogy nagyon egyértelmű eredményünk van, összehasonlítva a fenti példában szereplő Single dense_rank () módszerrel. Minden sorértékhez ugyanazt az ismételt értéket kaptuk, amint az alább látható. Ez a rangértékek kapcsolata.

MySQL PERCENT_RANK ():

Ez valóban egy százalékos rangsorolási (összehasonlító rang) módszer, amely kiszámítja a partíción vagy az eredménygyűjteményen belüli sorokat. Ez a módszer visszaad egy listát egy nullától 1-ig terjedő skálán.

01. példa: Egyszerű PERCENT_RANK ()

Az „alkalmazott” táblázat segítségével megvizsgáltuk az egyszerű PERCENT_RANK () módszer példáját. Erre van egy alábbi lekérdezésünk. A per_rank oszlopot a PERCENT_Rank () módszerrel állítottuk elő a százalékos formában rangsorolt ​​eredmény érdekében. Az adatokat az „Életkor” oszlop rendezési sorrendje szerint hoztuk le, majd rangsoroltuk az értékeket ebből a táblázatból. Ennek a példának a lekérdezési eredménye százalékos rangsort adott nekünk az alábbi képen bemutatott értékekhez.

>> KIVÁLASZTÁS *, PERCENT_RANK () TÖBB (ÉRTESÍTÉS ÉLETBEN) per_rank FROM adatok.munkavállaló;

02. példa: PERCENT_RANK () a PARTITION használatával

Miután elvégezte a PERCENT_RANK () egyszerű példáját, itt a sor a „PARTITION BY” záradékra. Ugyanazt a táblázatot használtuk „alkalmazott”. Vessünk egy újabb bepillantást egy másik példányba, amely részekre bontja az eredményhalmazt. Az alábbi szintaxisból adódóan a PARTITION BY kifejezés által kapott eredményfalat a FROM deklaráció téríti meg, majd a PERCENT_RANK () metódust alkalmazzák az egyes sorok rangsorolásához a „Név” oszlopban. Az alábbi képen látható, hogy az eredménykészlet csak 0 és 1 értéket tartalmaz.

>> KIVÁLASZTÁS *, PERCENT_RANK () TELJES (FELOSZTÁS Fizetési RENDELÉS NÉVBEN) Per_rank FROM adatok.munkavállaló;

Következtetés:

Végül elvégeztük mindhárom rangsorolási funkciót a MySQL-ben használt sorokhoz, a MySQL parancssori klienshéjon keresztül. Vizsgálatunk során figyelembe vettük mind az egyszerű, mind a PARTITION BY záradékot.

A legjobb játékkonzol emulátorok Linuxhoz
Ez a cikk felsorolja a Linux számára elérhető népszerű játékkonzol-emulációs szoftvereket. Az emuláció egy szoftver-kompatibilitási réteg, amely játék...
A legjobb Linux-disztribútorok játékhoz 2021-ben
A Linux operációs rendszer hosszú utat tett meg eredeti, egyszerű, szerver alapú kinézetétől. Ez az operációs rendszer rendkívül javult az elmúlt évek...
Hogyan lehet rögzíteni és streamelni a játékmenetét Linuxon
Korábban a játékokat csak hobbinak tekintették, de az idő múlásával a játékipar hatalmas növekedést ért el a technológia és a játékosok száma szempont...