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

Sådan gulvnumre i SQL

Problem:

Du vil runde et tal ned til det nærmeste heltal.

Eksempel:

Vores database har en tabel ved navn medarbejder med data i følgende kolonner:id , first_name , last_name , og hours_worked (for den aktuelle måned).

id fornavn efternavn arbejdede timer
1 Alan Watson 95
2 Lisa Sort 225
3 Laura Williams 104

Lad os vise for- og efternavnet på hver medarbejder sammen med antallet af dage, de arbejdede. Da tabellen kun viser antallet af arbejdstimer og ikke dagene, skal vi selv beregne denne værdi.

For dette problem antager vi, at hver medarbejder har en standard otte-timers arbejdsdag uden uregelmæssigheder. Derfor er antallet af arbejdsdage antallet af timer divideret med otte.

Løsning:

SELECT last_name, first_name, FLOOR(hours_worked/8) AS days_worked
FROM employee;

Forespørgslen returnerer for- og efternavnet på hver medarbejder og det antal dage, de har arbejdet i denne måned.

efternavn fornavn dage_arbejdet
Watson Alan 11
Sort Lisa 28
Williams Laura 13

Diskussion:

Gulvbelægning er en simpel matematisk operation, der tager et tal og runder det ned til nærmeste heltal. For eksempel er gulvet i 5 selve 5, mens gulvet i 5,1 også er 5. Som et andet eksempel er gulvet på 4,9 4.

I SQL bruger vi FLOOR-funktionen. Det tager tallet for at afrunde og returnerer det nærmeste heltal, der er mindre end eller lig med det. I vores eksempel skal antallet af arbejdsdage være et heltal, ikke et flydende kommatal. Derfor brugte vi (FLOOR(hours_worked/8) ).


  1. Ikke en gyldig måned på en INSERT-erklæring

  2. Sådan opretter du en underformular ud fra en tabel i Access 2016

  3. Sådan genereres et tilfældigt heltal inden for et område i MariaDB

  4. PL/SQL Tutorial:Alt du behøver at vide om PL/SQL