Probleem:
U wilt een getal naar beneden afronden op het dichtstbijzijnde gehele getal.
Voorbeeld:
Onze database heeft een tabel met de naam werknemer met gegevens in de volgende kolommen:id
, first_name
, last_name
, en hours_worked
(voor de huidige maand).
id | voornaam | achternaam | hours_worked |
---|---|---|---|
1 | Alan | Watson | 95 |
2 | Lisa | Zwart | 225 |
3 | Laura | Willems | 104 |
Laten we de voor- en achternaam van elke werknemer weergeven, samen met het aantal dagen dat ze hebben gewerkt. Aangezien de tabel alleen het aantal gewerkte uren laat zien en niet de dagen, moeten we deze waarde zelf berekenen.
Voor dit probleem gaan we ervan uit dat elke werknemer een standaard werkdag van acht uur heeft zonder onregelmatigheden. Daarom is het aantal gewerkte dagen het aantal uren gedeeld door acht.
Oplossing:
SELECT last_name, first_name, FLOOR(hours_worked/8) AS days_worked FROM employee;
De zoekopdracht retourneert de voor- en achternaam van elke werknemer en het aantal dagen dat ze deze maand hebben gewerkt.
achternaam | voornaam | days_worked |
---|---|---|
Watson | Alan | 11 |
Zwart | Lisa | 28 |
Willems | Laura | 13 |
Discussie:
Vloeren is een eenvoudige wiskundige bewerking die een getal neemt en naar beneden afrondt op het dichtstbijzijnde gehele getal. De vloer van 5 is bijvoorbeeld zelf 5, terwijl de vloer van 5.1 ook 5 is. Een ander voorbeeld is dat de vloer van 4.9 4 is.
In SQL gebruiken we de functie FLOOR. Het heeft het getal nodig om af te ronden en retourneert het dichtstbijzijnde gehele getal dat kleiner is dan of gelijk is aan het getal. In ons voorbeeld moet het aantal gewerkte dagen een geheel getal zijn, geen getal met drijvende komma. Daarom gebruikten we (FLOOR(hours_worked/8)
).