Database
 sql >> Database >  >> RDS >> Database

Come pianificare i numeri in SQL

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) ).