Die SQL ROUND Funktion rundet eine Zahl auf eine selbst festgelegte Anzahl von Dezimalstellen. Liegt die Nachkommastelle zwischen 0 und 4, wird abgerundet. Ist die zu Nachkommastelle eine Wert zwischen 5 und 9, wird aufgerundet.
SELECT ROUND(Wert, Kommastellen)
FROM Tabelle;
Es ist in der Datenverarbeitung sehr wichtig, korrekt runden zu können. Die 0,009€ an der Tankstelle, auf die man selten achtet, sind für uns Verbraucher vielleicht egal, aber wenn man darüber nachdenkt, wie viele Liter Sprit Tankstellen jährlich verkaufen, kann es zu Werten in Millionenhöhen kommen.
Würden wir hier die 0,009€ abrunden, hätten wir in der Buchhaltung ein deutliches Problem. Daher spielt das korrekte Runden eine bedeutende Rolle in der Datenverarbeitung. Ob Finanzberechnungen, statistische Analysen oder das übersichtliche Anzeigen von Ergebnissen – alle zwingen uns dazu richtig zu runden.
In diesem Artikel möchten wir erklären, wie einfach das Runden in SQL abläuft und dich mit der SQL ROUND funktioniert vertraut machen. Egal, ob du Anfänger bist oder bereits Erfahrung mit SQL hast.
Grundlagen der SQL ROUND-Funktion
Syntax der ROUND-Funktion
SELECT ROUND(Wert, Kommastellen)
FROM Tabelle;
Die Syntax der ROUND-Funktion ist sehr simpel. Nach dem SELECT Befehl geben wir „ROUND()“ ein. In die Klammer kommen zwei Werte rein, die mit einem Komma getrennt werden:
- Der zu rundende Wert (Pflichtfeld)
- Die Anzahl der Stellen nach dem Komma (Optional)
Verwendung von ROUND zum Runden von Kommazahlen
Wenn die Anzahl der Nachkommastellen nicht angegeben wird, wird in folgenden Fällen abgerundet:
- Abrunden: Zwischen 1 und 4
- Aufrunden: Zwischen 5 und 9
Sollen Zahlen mit Nachkommastellen zwischen 5 und 9 abgerundet werden, muss die FLOOR() Funktion genutzt werden. Sollen Zahlen zwischen 1 und 4 aufgerundet werden, muss die CEIL() Funktion genutzt werden.
Rundungsoptionen in SQL (mit Beispiel)
Wie rundet man auf die nächstliegende Zahl?
Beim regulären Runden, brauchen man keine Nachkommastellen anzugeben. Ist die erste Nachkommastelle größer gleich 5, wird aufgerundet. Wenn der Wert darunter liegt, wird abgerundet.
SELECT ROUND(1.5)
FROM tabelle;
# Ergebnis: 2
SELECT ROUND(1.4)
FROM tabelle;
# Ergebnis 1
Wie rundet man auf die zweite Nachkommastelle?
Möchte man auf die zweite Nachkommastelle runden, muss man in der ROUND Funktion den zweiten Parameter für die Nachkommastelle auf 2 setzen.
SELECT ROUND(preis, 2) as gerundeter_preis
FROM produkte;
Diese Abfrage benutzt die ROUND-Funktion, um den Preis von Produkten auf die zweite Nachkommastelle zu runden. Das Ergebnis wird unter dem Alias „gerundeter_preis“ zurückgegeben.
Wie rundet man auf eine größere Ganzzahl?
Möchte man Werte mit einer Nachkommastelle unter 5 aufrunden (wie z.B. 1,01), muss man statt ROUND die CEIL-Funktion nutzen. Bei Datenbanken von Microsoft heißt diese Funktion in der Regel CEILING. Diese rundet jede Zahl mit einer Nachkommastelle über 0 auf die nächste Ganzzahl auf.
SELECT CEIL(1.01)
FROM tabelle;
# Ergebnis: 2
Wie rundet man auf eine kleinere Ganzzahl?
Möchte man Werte mit einer Nachkommastelle über 5 abrunden (wie z.B. 1,99), ist die FLOOR-Funktion die beste Lösung. Mit ihr rundet man jede Zahl mit einer Nachkommastelle über 0 auf die nächste Ganzzahl ab.
SELECT FLOOR(1.99)
FROM tabelle;
# Ergebnis: 1
Fortgeschrittene Anwendungsfälle
Wie rundet man auf Zehner?
Möchten wir eine Zahl auf Zehner runden, wird dabei die erste Ziffer (z.B. bei 991 die 1) ab- oder aufgerundet.
In SQL muss man den ROUND Befehl nutzen und als Nachkommazahl eine -1 eingeben. Damit schauen wir uns die erste Zahl links vom Komma an. Ist kleiner als 5, wird die Zehnerstelle abgerundet. Ansonsten runden wir auf.
SELECT ROUND(991, -1)
FROM tabelle
# Ergebnis: 990
Wie rundet man auf Hunderter?
Beim Runden auf Hunderter wird die zweite Ziffer (z.B. bei 991 die 9) ab- oder aufgerundet.
In SQL muss man beim Runden auf Hunderter in der ROUND-Funktion eine negative Nachkommastelle festlegen. Der zweite Wert links vom Komma wird betrachtet, weswegen man als Nachkommastelle eine -2 angeben muss.
SELECT ROUND(991, -2)
FROM tabelle
# Ergebnis: 1000
Wie rundet man auf spezifische Schritte oder Intervalle in SQL?
Manchmal möchten wir unsere Rundungsschritte selbst bestimmen. Möchten wir statt auf den nächsten Zehner oder Hunderter diesmal auf den nächsten 5er oder 3,14er runden, dann sollten wir diese Formel verwenden:
SELECT ROUND(Wert / Intervall) * Intervall
FROM tabelle;
Im Fitnessstudio ist die kleine Gewichtsscheibe in der Regel eine 1,25kg-Scheibe. Da wir bei einer Langhantel zwei davon brauchen, ist der kleinste Schritt, den wir gehen können, um uns zu steigern 2,5kg.
Berechnen wir also unsere Gewichte mit einer Formel, müssen wir auf das nächste 2,5kg-Intervall runden.
SELECT ROUND(20.1 / 2.5) * 2.5
FROM tabelle;
# Ergebnis: 20
SELECT ROUND(24.9 / 2.5) * 2.5
FROM tabelle;
# Ergebnis: 25
SELECT ROUND(22.5 / 2.5) * 2.5
FROM tabelle;
# Ergebnis: 22.5
Verwendung von ROUND in Kombination mit anderen SQL-Funktionen
Die ROUND-Funktion in SQL kann auch in Kombination mit anderen SQL-Funktionen eingesetzt werden, um kompliziertere Berechnungen durchzuführen oder spezifische Anforderungen zu erfüllen. Hier sind einige Beispiele, wie ROUND mit anderen SQL-Funktionen kombiniert werden kann.
Durchschnitte runden (AVG und ROUND)
SELECT ROUND(AVG(anzahl)) AS gerundeter_durchschnitt
FROM verkaeufe;
Diese Abfrage berechnet den Durchschnitt der verkauften Mengen und rundet das Ergebnis auf die nächste Ganzzahl.
Summen runden (SUM und ROUND)
SELECT ROUND(SUM(preis), 2) AS gerundete_summe
FROM verkaeufe;
Diese Abfrage summiert die Preise der Produkte und rundet das Gesamtergebnis auf zwei Dezimalstellen.
Texte zusammenfügen (CONCAT und ROUND)
SELECT CONCAT('Der gerundete Preis beträgt: ',
ROUND(preis, 2)
) AS ergebnis
FROM verkaeufe;
Diese Abfrage gibt einen Text aus, der den gerundeten Preis eines Produkts enthält.