MySQL MariaDB

Funzione della finestra RANK di MySQL

Funzione della finestra RANK di MySQL
Il metodo Ranking assegna un rango all'interno della partizione di un risultato di un set ad ogni riga. Il rango di una riga è determinato incrementando una cifra di ranghi dalla riga che la precede. MySQL utilizza una funzione di classificazione che aiuta una classifica per riga in una partizione dello schema. In MySQL, i metodi di valutazione sono effettivamente una semiparte del metodo della finestra. Utilizzerai i metodi di valutazione in MySQL con le seguenti clausole:

In totale, ci sono tre tipi di funzioni di ranking, come segue:

CLASSIFICA MySQL():

Questo è un metodo che fornisce un rango all'interno di una partizione o di un array di risultati con lacune per riga. Cronologicamente, la classifica delle righe non è sempre allocata (i.e., aumentato di uno dalla riga precedente). Anche quando hai un pareggio tra diversi valori, a quel punto, l'utilità rank() applica la stessa classificazione ad esso. Inoltre, il suo rango precedente più una cifra di numeri ripetuti può essere il numero di rango successivo.

Per comprendere il ranking, apri la shell del client da riga di comando e digita la tua password MySQL per iniziare a utilizzarla.

Supponiamo di avere una tabella sottostante denominata "stesso" all'interno di un database "dati", con alcuni record.

>> SELEZIONA * DAI dati.stesso;

Esempio 01: RANK semplice()

Di seguito, abbiamo utilizzato la funzione Rank all'interno del comando SELECT. Questa query seleziona la colonna "id" dalla tabella "stesso" mentre la classifica in base alla colonna "id". Come puoi vedere, abbiamo dato un nome alla colonna della classifica, che è "my_rank". La classifica verrà ora memorizzata in questa colonna, come mostrato di seguito.

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

Esempio 02: RANK() utilizzando PARTITION

Assumi un'altra tabella "dipendente" in un database "dati" con i seguenti record. Facciamo un'altra istanza che divide il set di risultati in segmenti.

>> SELEZIONA * DAI dati.dipendente;

Per consumare il metodo RANK(), l'istruzione successiva assegna il rango a ogni riga e divide il set di risultati in partizioni utilizzando "Età" e ordinandole in base a "Salario". Questa query ha recuperato tutti i record mentre si posizionava in una colonna "new_rank". Puoi vedere l'output di questa query qui sotto. Ha ordinato la tabella per “Salary” e l'ha divisa per “Età”.

>> SELECT *, RANK() OVER(PARTITION BY Age ORDER BY Salary) new_rank FROM dati.dipendente;

MySQL DENSE_Rank():

Questa è una funzionalità in cui, senza buchi, determina un rango per ogni riga all'interno di una divisione o set di risultati. La classifica delle righe viene spesso assegnata in ordine sequenziale. A volte, hai un legame tra i valori, e quindi è assegnato al rango esatto dal rango denso, e il suo rango successivo è il numero successivo successivo.

Esempio 01: semplice DENSE_RANK()

Supponiamo di avere una tabella "dipendente" e di dover classificare le colonne della tabella "Nome" e "Stipendio" in base alla colonna "Nome". Abbiamo creato una nuova colonna "dens_Rank" per memorizzare la valutazione dei record al suo interno. Dopo aver eseguito la query di seguito, abbiamo i seguenti risultati con una classificazione diversa per tutti i valori.

>> SELECT Nome, Stipendio, DENSE_RANK() OVER( ORDER BY Name ) dens_rank FROM dati.dipendente;

Esempio 02: DENSE_RANK() utilizzando PARTITION

Vediamo un'altra istanza che divide il set di risultati in segmenti. Secondo la sintassi seguente, il set risultante partizionato dalla frase PARTITION BY viene restituito dall'istruzione FROM e il metodo DENSE_RANK() viene quindi applicato a ciascuna sezione utilizzando la colonna "Nome". Quindi, per ogni segmento, la frase ORDER BY sbava per determinare l'imperativo delle righe utilizzando la colonna "Età".

>> SELECT Nome, Età, Stipendio, DENSE_RANK() OVER(PARTITION BY Nome ORDER BY Age) new_rank FROM dati.dipendente;

Dopo aver eseguito la query sopra, puoi vedere che abbiamo un risultato molto distinto rispetto al metodo Single dense_rank() nell'esempio sopra. Abbiamo lo stesso valore ripetuto per ogni valore di riga, come puoi vedere di seguito. È il legame dei valori di rango.

MySQL PERCENT_RANK():

È infatti un metodo di classificazione percentuale (classifica comparativa) che calcola le righe all'interno di una partizione o di una raccolta di risultati. Questo metodo restituisce un elenco da una scala di valori da zero a 1.

Esempio 01: semplice PERCENT_RANK()

Utilizzando la tabella "dipendente", abbiamo esaminato l'esempio del semplice metodo PERCENT_RANK()(). Abbiamo una domanda qui sotto per questo. La colonna per_rank è stata generata dal metodo PERCENT_Rank() per classificare il set di risultati sotto forma di percentuale. Abbiamo recuperato i dati in base all'ordinamento della colonna "Età" e quindi abbiamo classificato i valori da questa tabella. Il risultato della query per questo esempio ci ha fornito una classifica percentuale per i valori come presentato nell'immagine qui sotto.

>> SELECT *, PERCENT_RANK() OVER( ORDER BY Age ) per_rank FROM dati.dipendente;

Esempio 02: PERCENT_RANK() utilizzando PARTITION

Dopo aver fatto il semplice esempio di PERCENT_RANK(), ora è il turno della clausola “PARTITION BY”. Abbiamo utilizzato la stessa tabella "dipendente". Diamo un'altra occhiata a un'altra istanza che divide il set di risultati in sezioni. Data dalla sintassi seguente, il set wall off risultante dall'espressione PARTITION BY viene rimborsato dalla dichiarazione FROM, così come il metodo PERCENT_RANK() viene quindi utilizzato per classificare ogni ordine di riga in base alla colonna "Name". Nell'immagine visualizzata di seguito, puoi vedere che il set di risultati contiene solo 0 e 1 valori.

>> SELECT *, PERCENT_RANK() OVER(PARTITION BY Salary ORDER BY Name) per_rank FROM dati.dipendente;

Conclusione:

Infine, abbiamo eseguito tutte e tre le funzioni di classificazione per le righe utilizzate in MySQL, tramite la shell del client da riga di comando di MySQL. Inoltre, abbiamo preso in considerazione sia la clausola semplice che PARTITION BY nel nostro studio.

Rimappa i pulsanti del mouse in modo diverso per software diversi con X-Mouse Button Control
Forse hai bisogno di uno strumento che possa cambiare il controllo del tuo mouse con ogni applicazione che utilizzi. In questo caso, puoi provare un'a...
Recensione del mouse wireless Microsoft Sculpt Touch
Ho letto di recente del Microsoft Scolpisci il tocco mouse wireless e ho deciso di acquistarlo. Dopo averlo usato per un po', ho deciso di condividere...
Trackpad e puntatore del mouse su schermo AppyMouse per tablet Windows
Gli utenti di tablet spesso mancano il puntatore del mouse, soprattutto quando sono abituati a usare i laptop laptop. Gli smartphone e i tablet touchs...