14th May 2024 Tempo di lettura: 6 minuti La funzione SQL MIN() Jill Thornhill imparare sql nozioni di base di sql Indice Dati di esempio Esempi semplici della funzione SQL MIN() Esempio 1: Funzione MIN() semplice Esempio 2: Utilizzo di MIN() con altre funzioni di aggregazione Esempio 3: Uso di MIN() con un'espressione aritmetica Esempi non standard della funzione MIN() Esempio 4: Uso di MIN() su colonne di data/ora Esempio 5: Uso della funzione SQL MIN() su colonne di testo Utilizzo della funzione SQL MIN() con GROUP BY Uso della funzione MIN() in HAVING I valori nulli influenzano la funzione MIN()? Proseguire con la funzione MIN() di SQL SQL dispone di una serie di potenti strumenti di aggregazione, tra cui la funzioneSQL MIN(). Questo articolo è una guida rapida all'estrazione e all'utilizzo dei valori minimi nelle query. Nell'odierno ambiente aziendale, caratterizzato da una forte concorrenza, è fondamentale poter analizzare efficacemente i dati dell'organizzazione per prendere decisioni informate. Le funzioni aggregate di SQL consentono di eseguire qualsiasi tipo di analisi statistica sui dati. Questo articolo è una guida di riferimento alla funzione SQL MIN(), che estrae l'elemento più piccolo da una colonna di dati. Se siete alle prime armi con SQL, potreste essere interessati al nostro corso interattivo SQL per principianti. Partendo dal livello principiante, imparerete a conoscere le funzioni più utili di SQL. Imparerete i concetti di database relazionale, come estrarre i dati e come analizzarli utilizzando raggruppamenti e aggregati. Vi collegherete a un database attraverso il browser per mettere in pratica le vostre nuove competenze con 129 esercizi interattivi. Il corso richiede circa 10 ore per essere completato. Torniamo ora alla funzione MIN(). Inizieremo con l'esaminare il set di dati. Dati di esempio Tutti gli esempi di questo articolo utilizzano i dati riportati di seguito, che sono un sottoinsieme del database dei dipendenti di esempio di MySQL. I dati sono contenuti in una tabella denominata employee_data. emp_nobirth_datefirst_namelast_namesalarydept_nameterm_date 100021984-06-02BezalelSimmel72527Sales2022-05-31 100041974-05-01ChirstianKoblick74057Production 100061973-04-20AnnekePreusig60098Development 100081978-02-19SaniyaKalloufi52668Development 100121980-10-04PatricioBridgland54794Development 100141976-02-12BerniGenin60598Development 100161981-05-02KazuhitoCappelletti77935Sales2020-12-31 Esempi semplici della funzione SQL MIN() Esempio 1: Funzione MIN() semplice La funzione MIN() estrae il valore minimo da una colonna. Nella sua forma più semplice, si potrebbe utilizzare la query sottostante per rispondere alla domanda: Quanto guadagna annualmente il dipendente con la retribuzione più bassa? SELECT MIN(salary) FROM employee_data; I risultati sono i seguenti: min(salary) 52668 Si noti che la funzione MIN(), come tutti gli altri aggregati SQL, è sempre seguita da un nome di colonna tra parentesi. In questo esempio, SQL cerca nell'intera tabella ed estrae il valore più basso per la colonna indicata. Esempio 2: Utilizzo di MIN() con altre funzioni di aggregazione Naturalmente, è possibile includere altre funzioni aggregate nei risultati, come questa: SELECT MIN(salary), MAX(salary), AVG(salary) FROM employee_data; I risultati sarebbero simili a questo: min(salary)max(salary)avg(salary) 526687793564668.143 Per ulteriori esempi, leggete Le funzioni SQL MIN() e MAX() spiegate in 6 esempi. Esempio 3: Uso di MIN() con un'espressione aritmetica È possibile utilizzare espressioni aritmetiche con la funzione MIN(). Se si volesse vedere il salario minimo mensile anziché il salario minimo annuale, la query sarebbe: SELECT MIN(salary/12) AS min_monthly_salary FROM employee_data; Il risultato di questa query è: min_monthly_salary 4389 Esempi non standard della funzione MIN() Esempio 4: Uso di MIN() su colonne di data/ora La funzione MIN() funziona altrettanto bene con i dati non numerici. Può essere utilizzata con i tipi di dati data e datetime per estrarre la data o l'ora più vicina. Se si volesse trovare la data di nascita del dipendente più giovane dell'azienda, la query sarebbe simile a questa: SELECT MIN(birth_date) FROM employee_data; I risultati sono i seguenti: min(birth_date) 20/4/1973 Esempio 5: Uso della funzione SQL MIN() su colonne di testo Per i tipi di dati a stringa di caratteri come CHAR, VARCHAR e TEXT, la funzione SQL MIN() estrae dalla colonna il primo valore in ordine alfabetico. Se si vuole trovare il primo nome di reparto in ordine alfabetico nella tabella employee_data tabella, la query sarebbe: SELECT MIN(dept_name) FROM employee_data Ecco i risultati: min(dept_name) Development Si può notare che, anche se diversi dipendenti appartengono al reparto Sviluppo, il nome del reparto compare solo una volta nei risultati. Utilizzo della funzione SQL MIN() con GROUP BY La funzione MIN(), come tutte le funzioni aggregate di SQL, può essere utilizzata insieme alla clausola GROUP BY. Questa clausola indica a SQL di raggruppare le righe simili e di produrre una singola riga per ogni gruppo. Ad esempio, se si raggruppano i dati del campione per reparto, il set di risultati conterrà una riga per ogni reparto. Se non avete ancora familiarità con la clausola GROUP BY e con il suo utilizzo, questi 5 esempi di GROUP BY possono aiutarvi. Quando si usa la funzione MIN() insieme alla clausola GROUP BY, si vede il valore minimo in ogni gruppo. Ad esempio, se si volesse vedere lo stipendio più basso in ogni reparto, la query avrebbe il seguente aspetto: SELECT dept_name, MIN(salary) FROM employee_data GROUP BY dept_name; I risultati della query sarebbero questi: dept_nameMIN(salary) Sales72527 Production74057 Development52668 È possibile utilizzare anche la clausola ORDER BY. Se si desidera che i risultati siano in ordine di stipendio minimo, la query sarebbe: SELECT dept_name, MIN(salary) FROM employee_data GROUP BY dept_name ORDER BY MIN(salary); L'insieme dei risultati appare quindi in ordine di stipendio minimo, dal più basso al più alto: dept_nameMIN(salary) Development52668 Sales72527 Production74057 Se ritenete di aver bisogno di un po' di pratica con il raggruppamento dei dati in SQL, troverete alcuni esercizi utili in 10 esercizi GROUP BY Pratica su SQL con soluzioni. Uso della funzione MIN() in HAVING È possibile utilizzare le funzioni aggregate per filtrare l'insieme dei risultati. Normalmente, i criteri di selezione vengono definiti con una clausola WHERE, ma non è possibile utilizzare WHERE per filtrare un aggregato. È necessario utilizzare la clausola HAVING. Per trovare tutti i reparti in cui il salario minimo annuale è superiore a 60.000, la query dovrebbe essere: SELECT dept_name, MIN(salary) FROM employee_data GROUP BY dept_name HAVING MIN(salary) > 60000 ORDER BY MIN(salary); Si noti che la clausola HAVING deve essere usata con la clausola GROUP BY e che è posta dopo la GROUP BY ma prima della ORDER BY. I risultati sono: dept_nameMIN(salary) Sales72527 Production74057 I valori nulli influenzano la funzione MIN()? La funzione SQL MIN() ignora le righe con un valore nullo quando calcola il minimo. Il valore restituito è quindi il valore più basso non nullo nella colonna specificata. Nei dati di esempio, solo due righe hanno valori nella data di scadenza. In tutte le altre righe, questa colonna è impostata su NULL. Se si cerca la data di cessazione minima, si dovrebbe ottenere il valore più basso non nullo. Proviamo: SELECT MIN(term_date) FROM employee_data; Questo restituisce la data più piccola, ignorando i valori nulli: MIN(term_date) 31/12/2020 L'unica volta che la funzione MIN() restituirebbe un NULL sarebbe se tutti i valori della colonna fossero NULL. Proseguire con la funzione MIN() di SQL Abbiamo esplorato gli usi di MIN(), ma il vostro viaggio di apprendimento è appena iniziato: c'è molto altro da scoprire! Per una guida rapida all'uso della funzione SQL MIN(), consultate questi due libri di cucina: Come trovare il valore minimo di una colonna Trovare le righe con il valore minimo Non c'è niente di meglio che la risoluzione di problemi pratici per imparare bene qualsiasi argomento. Il nostro percorsoPratica su SQL vi propone una serie di sfide simili a quelle che incontrerete nel mondo reale, con un aiuto sempre disponibile se vi bloccate. Infine, LearnSQL.it offre una vasta gamma di corsi progettati per aiutarvi in ogni fase del vostro percorso di apprendimento. Se siete seriamente intenzionati a diventare esperti di SQL, vi consiglio il nostro percorso di apprendimento SQL dalla A alla Z. Questo percorso è composto da 7 corsi interattivi che vi accompagnano dai principianti alle funzioni avanzate. Fate il passo successivo e date una spinta alla vostra carriera diventando esperti di SQL! Tags: imparare sql nozioni di base di sql