MySQL MariaDB

MySQL Rijnummer Venster Functie

MySQL Rijnummer Venster Functie
Binnen MySQL bevat een ROW NUMBER()-methode een chronologisch nummer voor elke rij binnen de partitie. Het is gewoon een soort vensterfunctie. Het aantal rijen begint bij 1 met het aantal rijen binnen de partitie. Onthoud, vóór versie 8.0, MySQL staat de ROW NUMBER()-functie niet toe, maar het biedt een sessievariabele die iemand helpt deze functie te imiteren. We zullen in deze handleiding meer begrijpen over de functionaliteit van MySQL ROW NUMBER() en een opeenvolgend nummer produceren voor elke rij in de resultatenverzameling. In MySQL worden de ROW_NUMBER()-methoden gebruikt met de volgende clausules:

Syntaxis:

>> SELECT col_name, ROW_NUMBER() OVER (PARTITION BY col_name, ORDER BY col_name) AS row_num FROM table_name;

Laten we de MySQL-opdrachtregelclientshell openen vanuit de applicaties en het wachtwoord typen om in te loggen.

U moet een nieuwe tabel maken of de standaardtabel gebruiken om aan de rijnummerfunctie te werken. Zoals weergegeven in de onderstaande afbeelding, hebben we een tabel "dieren" in het schema "gegevens" met enkele records erin. Laten we de records ophalen met behulp van de SELECT-instructie.

>> KIES * UIT gegevens.dieren;

Voorbeeld 01: ROW_NUMBER() met ORDER BY-clausule

We zullen dezelfde tabel gebruiken om enkele voorbeelden van de rijnummerfunctie uit te werken. We nemen een voorbeeld van de functie ROW_NUMBER() gevolgd door Over(), terwijl we alleen de ORDER BY-component gebruiken. We hebben alle records opgehaald terwijl we de rijen nummerden volgens de kolom "Prijs" -volgorde. We hebben de naam "row_num" gegeven aan een kolom, waarin de rijnummers worden opgeslagen. Laten we het onderstaande commando proberen om dit te doen.

>> SELECT *, ROW_NUMBER() OVER (ORDER BY Price) AS row_num FROM data.dieren;

Bij het uitvoeren van de bovenstaande query kunnen we zien dat de rijen zijn toegewezen met nummers volgens de sorteervolgorde van de kolom "Prijs". Je zou kunnen denken dat wat kleinere prijzen bovenaan de kolom zouden moeten staan ​​en dat het daarop zou moeten sorteren. Maar de ORDER BY-component ziet alleen het eerste cijfer of alfabet van de kolom om waarden te sorteren.

Laten we dezelfde query uitvoeren gevolgd door de ORDER BY-component terwijl we de sorteervolgorde van de kolom "Leeftijd" gebruiken. De output wordt gegeven volgens de kolom “Leeftijd”.

>> SELECT *, ROW_NUMBER() OVER (ORDER BY Age) AS row_num FROM data.dieren;

Voorbeeld 02: ROW_NUMBER() PARTITION BY-clausule gebruiken

We zullen de enige PARTITION BY-clausule in de ROW_NUMBER()-query gebruiken om de resultaten te controleren. We hebben de SELECT-query gebruikt om de records op te halen, gevolgd door de clausule ROW_NUMBER() en OVER, terwijl we de tabel hebben gepartitioneerd volgens de kolom "Kleur". Voer de bijgevoegde onderstaande opdracht uit in de opdrachtshell.

>> SELECT *, ROW_NUMBER() OVER (VERDELING OP kleur) AS row_num FROM data.dieren;

U kunt in het resultaat zien dat de nummering van rijen is toegewezen in partities, volgens de sorteervolgorde van de kleuren. Omdat we 4 waarden hebben voor kleur "Zwart" waarvoor 4 rijen nodig zijn. Daarom heeft het getallen met vier rijen, beginnend van 1 tot 4 en vice versa.

Probeer hetzelfde voorbeeld, deze keer gepartitioneerd door de kolom "Gender". Zoals we weten, hebben we slechts twee geslachten in deze tabel, daarom zullen er 2 partities worden gevormd. Vrouwtjes bezetten 9 rijen, daarom heeft het rijnummering van 1 tot 9. Terwijl mannen 8 waarden hebben, heeft het daarom 1 tot 8.

>> SELECT *, ROW_NUMBER() OVER (VERDELING OP geslacht) AS row_num FROM data.dieren;

Voorbeeld 03: ROW_NUMBER() met PARTITION BY & ORDER BY

We hebben de bovenstaande twee voorbeelden in de MySQL-opdrachtregel gedaan, nu is het tijd om het ROW_NUMBER()-voorbeeld in de MySQL Workbench 8 te doen.0. Open dus de MySQL Workbench 8.0 van de toepassingen. Verbind de MySQL Workbench met de lokale host-rootdatabase om aan de slag te gaan.

Aan de linkerkant van de MySQL Workbench vindt u de Schema-balk, blaas de navigator. In deze Schemabalk vindt u de lijst met databases. Onder de databaselijst heb je verschillende tabellen en opgeslagen procedures, zoals je kunt zien in de onderstaande afbeelding:. We hebben verschillende tabellen in onze database 'data'. We openen de tabel 'order1' met behulp van de SELECT-opdracht in het querygebied om deze te gaan gebruiken voor de ROW_NUMBER() functie-implementatie.

>> KIES * UIT gegevens.bestelling1;

De tabel "order1" is weergegeven in de rasterweergave zoals hieronder weergegeven:. U kunt zien dat het 4 kolomvelden heeft, id, Regio, Status en OrderNo. We halen alle records van deze tabel op terwijl we de clausules ORDER BY en PARTITION BY gebruiken, beide tegelijk.

In het querygebied van MySQL Workbench 8.0, typ de hieronder weergegeven vraag. De query is gestart met de SELECT-component, waarbij alle records worden opgehaald, gevolgd door de functie ROW_NUMBER() samen met de OVER-component. Na de OVER-clausule hebben we de kolom "Status" gespecificeerd, gevolgd door de "PARTITION BY" -instructie om de tabel in partities te verdelen volgens deze tabel. De ORDER BY-component wordt gebruikt om de tabel aflopend te rangschikken volgens de kolom "Regio". De rijnummers worden bewaard in de kolom "row_num". Tik op het flitspictogram om deze opdracht uit te voeren.

Het hieronder weergegeven resultaat wordt getoond. Allereerst is de tabel opgedeeld in twee delen volgens de waarden van kolom "Status". Daarna is het weergegeven in aflopende volgorde van kolom 'Regio' en zijn de partities voorzien van de rijnummers.

Conclusie:

Ten slotte hebben we alle benodigde voorbeelden voltooid bij het gebruik van de ROW_NUMBER()-functie in MySQL Workbench en MySQL Command-line Client Shell.

Beheer en beheer muisbewegingen tussen meerdere monitoren in Windows 10
Muisbeheer voor twee schermen laat je muisbewegingen tussen meerdere monitoren controleren en configureren door de bewegingen nabij de grens te vertra...
Met WinMouse kunt u de beweging van de muisaanwijzer op Windows-pc aanpassen en verbeteren
Als u de standaardfuncties van uw muisaanwijzer wilt verbeteren, gebruik dan freeware WinMuis. Het voegt meer functies toe om u te helpen het meeste u...
Linkermuisknop werkt niet op Windows 10
Als u een speciale muis gebruikt met uw laptop of desktopcomputer, maar de linkermuisknop werkt niet not op Windows 10/8/7 om wat voor reden dan ook, ...