L'operatore MIN in Sql
L'operatore Min del linguaggio SQL individua il valore minimo in una colonna della tabella tramite una query.
SELECT MIN (attributo)
FROM tabella
E' uno degli operatori aggregati del linguaggio SQL.
L'operatore Min genera un valore sintetico e non una tabella.
Nota. Si può usare l'operatore Min su qualsiasi tipo di dato ordinabile, sia numerico che alfanumerico. Nel caso delle stringhe l'operatore confronta i valori in base all'ordinamento alfabetico crescente da A a Z.
Un esempio pratico
Ho una tabella chiamata Studenti composta da quattro colonne (attributi).
Per cercare il valore minimo dell'età degli studenti, digito un'interrogazione SELECT con l'operatore Min sull'attributo Età
SELECT Min (Età)
FROM Studenti
La query trova il valore minimo nella colonna Età.
18
Esempio 2
Posso usare l'operatore MIN anche in colonne alfanumeriche.
Ad esempio la colonna Nome.
SELECT MIN (Nome)
FROM Studenti
L'operatore cerca il valore più basso seguendo l'ordinamento alfabetico da A a Z.
Il risultato finale è il valore
Giovanni
Restituisce Giovanni perché inizia con la lettera Giu, mentre gli altri nomi iniziano per Gio, M e P.
Esempio 3
Per trovare le righe delle persone che hanno l'età minima nella tabella, devo scrivere una select nidificata.
SELECT * FROM Studenti
WHERE Età = ( SELECT min(Età) FROM Studenti )
Nella select interna (verde) trovo il valore minimo della colonna Età.
Nella select esterna cerco le righe che hanno il valore minimo nella colonna Età.
Il linguaggio SQL esegue la select interna e scrive il risultato (18) nella select esterna.
SELECT * FROM Studenti
WHERE Età = ( 18 )
Poi esegue la select esterna.
Il risultato è
Il risultato è una tabella perché la select esterna seleziona le righe della tabella in base alla condizione (Età=18) definita dalla select interna.
Nota. E' sbagliato scrivere l'interrogazione SELECT cognome, min(età) FROM Studenti perché l'operatore aggregato Min genera un valore di sintesi (valore aggregato) e non seleziona le righe della tabella.
E così via.