back to top

Funzioni matematiche di MySQL: CEIL, FLOOR, ROUND, MIN, MAX, AVG, MOD e RAND

Come anticipato nella precedente lezione, MYSQL dispone di un ricco arsenale di funzioni matematiche native attraverso le quali fare calcoli come, ad esempio, arrotondamenti o estrarre valore massimi, mninimi e mediani.

Di seguito un elenco delle funzioni matematiche native di MySQL più utilizzate.

CEIL, FLOOR e ROUND

Queste tre funzioni sono utilizzate per arrotondare numeri decimali. CEIL arrotonda al numero intero maggiore, FLOOR all’intero minore. Più complessa la funzione ROUND che consente di arrotondare un numero specificando il numero di decimali da mantenere ed offrendo in risposta il numero più vicino al valore originale.

Volendo fare alcuni esempi ipotiziamo di voler arrotondare un campo prezzo il cui valore originale è 120.68:

SELECT CEIL(prezzo) FROM catalogo WHERE id = 1;

Risultato: 120

SELECT FLOOR(prezzo) FROM catalogo WHERE id = 1;

Risultato: 121

SELECT ROUND(prezzo,1) FROM catalogo WHERE id = 1;

Risultato: 120.7

MAX e MIN

Le funzioni MAX e MIN di MySQL consentono, rispettivamente, di ricavare il valore massimo e minimo di una colonna. La sintassi è la seguente:

SELECT MAX(prezzo) FROM catalogo;

Questa query restituirà il prezzo massimo dei prodotti presenti nel nostro catalogo.

L’utilizzo di MIN è identico ma, ovviamente, il risultato finale sarà opposto (verrà cioè estratto il valore minimo della colonna):

SELECT MIN(prezzo) FROM catalogo;

AVG

MySQL disponde della funzione AVG per il calcolo del valore mediano. Poniamo di avere un database utenti ed una colonna contenente la loro età. Se volessimo conoscre l’età media dei nostri utenti, useremo una query come questa:

SELECT AVG(eta) FROM utenti;

Tornano all’esempio del catalogo prodotti potremmo conoscere facilmente il przzo medio degli articoli del nostro negozio con la sueguente query:

SELECT AVG(prezzo) FROM catalogo;

MOD

La funzione MOD richiede due parametri numerici e restituisce il valore del resto della divisione intera del primo per il secondo. Ad esempio:

SELECT MOD(5,2);

Restituirà: 1 (il 2 sta due volte nel 5 col resto di 1).

RAND

La funzione RAND di MySQL restituisce un valore numerico decimale casuale compreso tra 0 e 1.

SELECT RAND();

Per generare un numero casuale interno compreso tra 1 e 10 dobbiamo utilizzare una query un poco più complessa:

SELECT FLOOR(RAND()*10)
Pubblicitร 
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).

In questa guida...