MySQL MariaDB

MySQL sorszám ablak funkció

MySQL sorszám ablak funkció
A MySQL-en belül a ROW NUMBER () metódus kronológiai számot tartalmaz a partíció minden sorához. Ez csak egyfajta ablakfunkció. A sorok ábrája 1-től kezdődik a partíción belüli sorok számával. Ne feledje, hogy a 8. verzió előtt.0, A MySQL nem engedélyezi a ROW NUMBER () függvényt, ugyanakkor kínál munkamenet változót, amely segít ennek a funkciónak az utánzásában. A MySQL ROW NUMBER () funkcióról többet megtudhatunk ebben az útmutatóban, és az eredménygyűjtemény minden egyes sorához sorszámot állítunk elő. A MySQL-ben a ROW_NUMBER () metódusokat használják a következő záradékokkal:

Szintaxis:

>> KIVÁLASZTÁS oszlop_neve, ROW_NUMBER () TÚL (PARTITION BY col_name, ORDER BY col_name) AS row_num FROM table_name;

Nyissuk meg a MySQL parancssori ügyfélhéjat az alkalmazásokból, és írjuk be a jelszót a bejelentkezéshez.

Létre kell hoznia egy új táblázatot, vagy az alapértelmezett táblázatot kell használnia a sorszámfüggvény megkezdéséhez. Amint az alábbi képen bemutatjuk, van egy „állatok” táblázat az „adatok” sémában, benne néhány rekord. Hívjuk be a rekordjait a SELECT utasítással.

>> SELECT * FROM adatok.állatok;

01. példa: ROW_NUMBER () ORDER BY záradék használatával

Ugyanezt a táblázatot fogjuk használni a sorszámfüggvény néhány példájának részletezésére. Példát veszünk a ROW_NUMBER () függvényre, amelyet az Over () követ, miközben csak az ORDER BY záradékot használjuk. Az összes rekordot lekérdeztük, miközben sorokat számoztunk az „Ár” oszlop sorrendje szerint. Megadtuk a „row_num” nevet egy oszlopnak, amely tárolja a sor számát. Próbáljuk meg megtenni az alábbi parancsot.

>> SELECT *, ROW_NUMBER () OVER (ORDER BY Price) AS row_num FROM adatokból.állatok;

A fenti lekérdezés végrehajtása után láthatjuk, hogy a sorokat számokkal rendeltük az „Ár” oszlop rendezési sorrendje szerint. Gondolhatja, hogy néhány kisebb árnak az oszlop tetején kell lennie, és ennek megfelelően kell rendezni. De az ORDER BY záradék csak az oszlop első számjegyét vagy ábécéjét látja az értékek rendezéséhez.

Végezzük el ugyanazt a lekérdezést, amelyet az ORDER BY záradék követ, miközben az „Age” oszlop rendezési sorrendjét használjuk. A kimenetet az „Életkor” oszlop szerint adjuk meg.

>> SELECT *, ROW_NUMBER () OVER (ORDER BY Age) AS row_num FROM adatokból.állatok;

02. példa: ROW_NUMBER () a PARTITION BY záradék használatával

Az eredmények ellenőrzéséhez a ROW_NUMBER () lekérdezés egyetlen PARTITION BY záradékát fogjuk használni. A SELECT lekérdezést használtuk a rekordok beolvasására, amelyet a ROW_NUMBER () és az OVER záradék követ, miközben a táblázatot a „Color” oszlopnak megfelelően particionáljuk. Hajtsa végre a mellékelt alábbi parancsot a parancsértelmezőben.

>> KIVÁLASZTÁS *, ROW_NUMBER () TÚL (FELOSZTÁS SZINTEN) AS sor_szám FROM adatokból.állatok;

Az eredményben láthatja, hogy a sorok számozása partíciókban lett kijelölve, a színek rendezési sorrendje szerint. Mivel 4 értékünk van a „Fekete” színre, amely 4 sort vesz igénybe. Ezért kapott négysoros számokat 1-től 4-ig és fordítva.

Próbálja ki ugyanezt a példát, amelyet ezúttal a „Nem” oszlop osztott fel. Mint tudjuk, ebben a táblázatban csak két nem szerepel, ezért 2 partíció jön létre. A nőstények 9 sort foglalnak el, ezért sorszámozása 1 és 9 között van. Míg a hímeknek 8 értéke van, ezért 1 és 8 között van.

>> KIVÁLASZTÁS *, ROW_NUMBER () TÖBB (NEM SZERZŐDÉS) AS row_num FROM adatokból.állatok;

03. példa: ROW_NUMBER () a PARTITION BY & ORDER BY használatával

A fenti két példát a MySQL parancssorban hajtottuk végre, itt az ideje a ROW_NUMBER () példát megtenni a MySQL Workbench 8 alkalmazásban.0. Tehát nyissa meg a MySQL Workbench 8 szoftvert.0 az alkalmazásokból. A munka megkezdéséhez csatlakoztassa a MySQL Workbench-et a helyi gazdagép gyökéradatbázisához.

A MySQL Workbench bal oldalán található a Séma sáv, fújja a navigátort. Ebben a Séma sávban megtalálja az adatbázisok listáját. Az adatbázisok listája alatt különböző táblázatok és tárolt eljárások lesznek, amint az az alábbi képen látható. Különböző táblázatok vannak az adatbázisunkban "adatok". Megnyitjuk a 'order1' táblázatot a SELECT paranccsal a lekérdezési területen, hogy elkezdjük használni a ROW_NUMBER () függvény megvalósításához.

>> SELECT * FROM adatok.megrendelés1;

A „megrendelés1” táblázat az alábbiak szerint látható a rács nézetben. Láthatja, hogy 4 oszlopmezője van, azonosító, régió, állapot és rendszám. A ORDER BY és a PARTITION BY záradék használatával egyszerre fogjuk letölteni a táblázat összes rekordját, mindkettőt egyszerre.

A MySQL Workbench 8 lekérdezési területén.0, írja be az alább látható lekérdezést. A lekérdezés a SELECT záradékkal kezdődött, az összes rekord lekérésével, amelyet a ROW_NUMBER () függvény követ, az OVER záradékkal együtt. Az OVER záradék után megadtuk az „Állapot” oszlopot, amelyet a „PARTITION BY” utasítás követett, hogy a táblázatot felosztjuk partíciókra ennek a táblázatnak megfelelően. Az ORDER BY záradékot használják a táblázat csökkenő rendezésére a „Region” oszlop szerint. A sorszámok a „row_num” oszlopban maradnak. A parancs végrehajtásához érintse meg a vaku ikont.

Az alább látható eredmény jelenik meg. Először is, a táblázatot két részre osztották az „Állapot” oszlop értékei szerint. Ezt követően a „Region” oszlop csökkenő sorrendjében került bemutatásra, és a partíciókat rendelték a sorszámokkal.

Következtetés:

Végül elkészítettük az összes szükséges példát a ROW_NUMBER () függvény használatához a MySQL Workbench és a MySQL parancssori ügyfélhéjban.

Microsoft Sculpt Touch vezeték nélküli egér áttekintés
Nemrég olvastam a Microsoft Sculpt Touch vezeték nélküli egér és úgy döntött, hogy megveszi. Egy ideig használat után úgy döntöttem, hogy megosztom ve...
AppyMouse képernyős Trackpad és egérmutató a Windows táblagépekhez
A táblagép-felhasználók gyakran hiányolják az egérmutatót, különösen akkor, ha szokták használni a laptopokat. Az érintőképernyős okostelefonok és táb...
Az egér középső gombja nem működik a Windows 10 rendszerben
A középső egérgomb segít átgörgetni a hosszú weboldalakat és a sok adatot tartalmazó képernyőket. Ha ez leáll, akkor a billentyűzet segítségével görge...