Problem:
Sie möchten eine Zahl auf die nächste Ganzzahl abrunden.
Beispiel:
Unsere Datenbank hat eine Tabelle namens employee mit Daten in den folgenden Spalten:id
, first_name
, last_name
und hours_worked
(für den aktuellen Monat).
id | Vorname | Nachname | Arbeitsstunden |
---|---|---|---|
1 | Alan | Watson | 95 |
2 | Lisa | Schwarz | 225 |
3 | Laura | Williams | 104 |
Lassen Sie uns den Vor- und Nachnamen jedes Mitarbeiters zusammen mit der Anzahl der Arbeitstage anzeigen. Da die Tabelle nur die Anzahl der geleisteten Arbeitsstunden und nicht die Tage anzeigt, müssen wir diesen Wert selbst berechnen.
Für dieses Problem gehen wir davon aus, dass jeder Mitarbeiter einen achtstündigen Standardarbeitstag ohne Unregelmäßigkeiten hat. Daher ist die Anzahl der gearbeiteten Tage die Anzahl der Stunden dividiert durch acht.
Lösung:
SELECT last_name, first_name, FLOOR(hours_worked/8) AS days_worked FROM employee;
Die Abfrage gibt den Vor- und Nachnamen jedes Mitarbeiters und die Anzahl der Arbeitstage in diesem Monat zurück.
Nachname | Vorname | days_worked |
---|---|---|
Watson | Alan | 11 |
Schwarz | Lisa | 28 |
Williams | Laura | 13 |
Diskussion:
Flooring ist eine einfache mathematische Operation, bei der eine Zahl auf die nächste Ganzzahl abgerundet wird. Zum Beispiel ist die Untergrenze von 5 5 selbst, während die Untergrenze von 5,1 ebenfalls 5 ist. Als weiteres Beispiel ist die Untergrenze von 4,9 4.
In SQL verwenden wir die FLOOR-Funktion. Es nimmt die zu rundende Zahl und gibt die nächste ganze Zahl zurück, die kleiner oder gleich ihr ist. In unserem Beispiel muss die Anzahl der geleisteten Arbeitstage eine ganze Zahl sein, keine Fließkommazahl. Daher haben wir (FLOOR(hours_worked/8)
).