L'operatore MAX in Sql

L'operatore Max del linguaggio SQL trova il valore massimo in una colonna (attributo) della tabella tramite un'interrogazione SELECT.

SELECT MAX (colonna)
FROM tabella

E' uno degli operatori aggregati del linguaggio SQL.

L'operatore Max restituisce un valore di sintesi. Non una tabella.

Nota. Posso usare l'operatore Max sui tipi di dati ordinabili, sia numerici che alfanumerici. Nel caso delle stringhe l'operatore Max considera l'ordinamento alfanumerico da A a Z dei valori.

    Un esempio pratico

    Ho la tabella Studenti

    una tabella di esempio

    Per trovare il valore massimo dell'età degli studenti, scrivo la select con l'operatore Max sull'attributo Età

    SELECT MAX (Età)
    FROM Studenti

    La query trova il valore massimo nella colonna Età.

    23

    Esempio 2

    Posso usare l'operatore MAX anche in colonne alfanumeriche.

    Ad esempio la colonna Nome.

    SELECT MAX (Nome)
    FROM Studenti

    In questo caso l'operatore restituisce l'ultimo valore dell'ordinamento delle stringhe da A a Z.

    Il risultato finale è il valore

    Paolo

    Restituisce Paolo perché inizia con la lettera P, mentre gli altri nomi iniziano per G e M.

    Esempio 3

    Per trovare i dati delle persone che hanno l'età massima nella tabella, devo costruire una select nidificata.

    SELECT * FROM Studenti
    WHERE Età = ( SELECT max(Età) FROM Studenti )

    Nella select interna (verde) cerco il valore massimo.

    Nella select esterna cerco le righe che hanno il valore massimo nella colonna Età.

    Il linguaggio SQL esegue prima la select interna e scrive il risultato (23) nella select esterna.

    SELECT * FROM Studenti
    WHERE Età = ( 23 )

    Poi esegue la select esterna.

    Il risultato è

    il risultato dell'interrogazione

    In questo caso il risultato è una tabella perché la select esterna seleziona le righe della tabella in base alla condizione (Età=23) definita dall'operatore aggregato MAX nella select interna.

    Nota. Sarebbe sbagliato scrivere l'interrogazione SELECT nome, max(età) FROM Studenti perché l'operatore aggregato Max non seleziona le righe della tabella bensì un valore di sintesi.

    E così via.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    SQL