Problema:
Vuoi arrotondare un numero per difetto all'intero più vicino.
Esempio:
Il nostro database ha una tabella denominata employee con i dati nelle seguenti colonne:id
, first_name
, last_name
e hours_worked
(per il mese corrente).
id | nome | cognome | ore_lavorate |
---|---|---|---|
1 | Alan | Watson | 95 |
2 | Lisa | Nero | 225 |
3 | Laura | Williams | 104 |
Mostriamo il nome e il cognome di ogni dipendente insieme al numero di giorni in cui ha lavorato. Poiché la tabella mostra solo il numero di ore lavorate e non i giorni, dobbiamo calcolare noi stessi questo valore.
Per questo problema, assumiamo che ogni dipendente abbia una giornata lavorativa standard di otto ore senza irregolarità. Pertanto, il numero di giornate lavorate è il numero di ore diviso per otto.
Soluzione:
SELECT last_name, first_name, FLOOR(hours_worked/8) AS days_worked FROM employee;
La query restituisce il nome e il cognome di ciascun dipendente e il numero di giorni in cui ha lavorato in questo mese.
cognome | nome | giorni_lavorati |
---|---|---|
Watson | Alan | 11 |
Nero | Lisa | 28 |
Williams | Laura | 13 |
Discussione:
La pavimentazione è una semplice operazione matematica che prende un numero e lo arrotonda al numero intero più vicino. Ad esempio, il floor di 5 è di per sé 5, mentre anche il floor di 5.1 è 5. Come altro esempio, il floor di 4.9 è 4.
In SQL, utilizziamo la funzione FLOOR. Prende il numero per arrotondare e restituisce l'intero più vicino che è minore o uguale ad esso. Nel nostro esempio, il numero di giorni lavorati deve essere un numero intero, non un numero a virgola mobile. Pertanto, abbiamo utilizzato (FLOOR(hours_worked/8)
).