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

Gewusst wie:Etagenzahlen in SQL

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