MySQL MariaDB

Funzione della finestra del numero di riga di MySQL

Funzione della finestra del numero di riga di MySQL
All'interno di MySQL, un metodo ROW NUMBER() contiene un numero cronologico per ogni riga all'interno della partizione. È solo una funzione della finestra di qualche tipo. La cifra delle righe inizia da 1 con la cifra delle righe all'interno della partizione. Ricorda, prima della versione 8.0, MySQL non consente la funzione ROW NUMBER() tuttavia, offre una variabile di sessione che aiuta a imitare questa funzione. Capiremo di più sulla funzionalità di MySQL ROW NUMBER() in questa guida e produrremo un numero consecutivo per ogni riga nella raccolta dei risultati. In MySQL, i metodi ROW_NUMBER() vengono utilizzati con le clausole successive:

Sintassi:

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

Apriamo la shell del client da riga di comando MySQL dalle applicazioni e digitiamo la password per accedere.

Devi creare una nuova tabella o utilizzare la tabella predefinita per iniziare a lavorare sulla funzione del numero di riga. Come presentato nell'immagine sottostante, abbiamo una tabella "animali" nello schema "dati" con alcuni record al suo interno. Recuperiamo i suoi record usando l'istruzione SELECT.

>> SELEZIONA * DAI dati.animali;

Esempio 01: ROW_NUMBER() Utilizzo della clausola ORDER BY

Useremo la stessa tabella per elaborare alcuni esempi della funzione del numero di riga. Stiamo prendendo un esempio della funzione ROW_NUMBER() seguita da Over(), usando solo la clausola ORDER BY. Abbiamo recuperato tutti i record mentre numeravamo le righe in base all'ordine della colonna "Prezzo". Abbiamo dato il nome "row_num" a una colonna, che memorizzerà i numeri della riga. Proviamo il comando seguente per farlo.

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

Dopo aver eseguito la query di cui sopra, possiamo vedere che le righe sono state assegnate con numeri secondo l'ordine di ordinamento della colonna "Prezzo". Potresti pensare che alcuni prezzi più piccoli dovrebbero essere nella parte superiore della colonna e che dovrebbero essere ordinati in base a questo. Ma la clausola ORDER BY vede solo la prima cifra o alfabeto della colonna per ordinare i valori.

Eseguiamo la stessa query seguita dalla clausola ORDER BY utilizzando l'ordinamento della colonna "Età". L'output sarà dato secondo la colonna "Età".

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

Esempio 02: ROW_NUMBER() Utilizzo della clausola PARTITION BY

Useremo l'unica clausola PARTITION BY nella query ROW_NUMBER() per controllare i risultati. Abbiamo utilizzato la query SELECT per recuperare i record seguiti dalla clausola ROW_NUMBER() e OVER, mentre partizionavamo la tabella in base alla colonna "Color". Esegui il comando allegato sotto nella shell dei comandi.

>> SELECT *, ROW_NUMBER() OVER ( PARTITION BY Color ) AS row_num FROM data.animali;

Puoi vedere nel risultato che la numerazione delle righe è stata assegnata nelle partizioni, secondo l'ordine di ordinamento dei colori. Poiché abbiamo 4 valori per il colore "Nero" che richiede 4 righe. Ecco perché ha numeri di quattro righe che iniziano da 1 a 4 e viceversa.

Prova lo stesso esempio, partizionato dalla colonna "Genere" questa volta. Come sappiamo, abbiamo solo due generi in questa tabella, ecco perché verranno formate 2 partizioni. Le femmine occupano 9 righe, ecco perché ha la numerazione delle righe da 1 a 9. Mentre i maschi hanno 8 valori, ecco perché ha da 1 a 8.

>> SELECT *, ROW_NUMBER() OVER ( PARTITION BY Gender ) AS row_num FROM data.animali;

Esempio 03: ROW_NUMBER() Utilizzo di PARTITION BY & ORDER BY

Abbiamo eseguito i due esempi precedenti nella riga di comando di MySQL, ora è il momento di eseguire l'esempio ROW_NUMBER() in MySQL Workbench 8.0. Quindi, apri MySQL Workbench 8.0 dalle applicazioni. Connetti MySQL Workbench con il database root dell'host locale per iniziare a lavorare.

Sul lato sinistro di MySQL Workbench, troverai la barra dello schema, fai saltare il navigatore. In questa barra dello schema, troverai l'elenco dei database. Sotto l'elenco dei database, avrai diverse tabelle e stored procedure, come puoi vedere nell'immagine qui sotto. Abbiamo diverse tabelle nel nostro database "dati". Apriremo la tabella 'order1' utilizzando il comando SELECT nell'area delle query per iniziare a utilizzarla per l'implementazione della funzione ROW_NUMBER().

>> SELEZIONA * DAI dati.ordine1;

La tabella "ordine1" è stata visualizzata nella vista griglia come mostrato di seguito. Puoi vedere che ha 4 campi colonna, ID, Regione, Stato e OrderNo. Recupereremo tutti i record di questa tabella utilizzando le clausole ORDER BY e PARTITION BY, entrambe contemporaneamente.

Nell'area delle query di MySQL Workbench 8.0, digita la query visualizzata di seguito. La query è stata avviata con la clausola SELECT, recuperando tutti i record seguiti dalla funzione ROW_NUMBER() insieme alla clausola OVER. Dopo la clausola OVER, abbiamo specificato la colonna “Status” seguita dall'istruzione “PARTITION BY” per dividere la tabella in partizioni secondo questa tabella. La clausola ORDER BY è stata utilizzata per disporre la tabella in modo decrescente secondo la colonna “Regione”. I numeri di riga verranno mantenuti nella colonna "row_num". Tocca l'icona del flash per eseguire questo comando.

Verrà mostrato il risultato visualizzato di seguito. Innanzitutto la tabella è stata segregata in due parti secondo i valori della colonna “Status”. Successivamente, è stato presentato nell'ordine decrescente della colonna 'Regione' e le partizioni sono state assegnate con i numeri di riga.

Conclusione:

Infine, abbiamo completato tutti gli esempi necessari nell'uso della funzione ROW_NUMBER() in MySQL Workbench e MySQL Command-line Client Shell.

Emula i clic del mouse passando il mouse utilizzando il mouse senza clic in Windows 10
L'uso di un mouse o di una tastiera nella postura sbagliata di un uso eccessivo può causare molti problemi di salute, tra cui tensione, sindrome del t...
Aggiungi i gesti del mouse a Windows 10 utilizzando questi strumenti gratuiti
Negli ultimi anni computer e sistemi operativi si sono notevolmente evoluti greatly. C'è stato un tempo in cui gli utenti dovevano usare i comandi per...
Controlla e gestisci il movimento del mouse tra più monitor in Windows 10
Gestore mouse con doppio display ti consente di controllare e configurare il movimento del mouse tra più monitor, rallentando i suoi movimenti vicino ...