diff --git a/SQL.md b/SQL.md index 28e4760..7bb7983 100644 --- a/SQL.md +++ b/SQL.md @@ -605,6 +605,54 @@ Erstellen Sie eine Abfrage, die Folgendes berechnet: Versuchen Sie, Klammern angemessen zu verwenden, um sicherzustellen, dass die Berechnungen in der richtigen Reihenfolge durchgeführt werden! +select (price * quantity + 15) as total_value, (price * quantity * 0.8 + 10) as discounted_value from products + + +## The Modulo Operation + +Der Modulo-Operator % gibt den Rest an, der nach der Division einer Zahl durch eine andere übrig bleibt. + +dividend % divisor +dividend: Die Zahl, die geteilt wird. +divisor: Die Zahl, durch die der Dividend geteilt wird. +Zum Beispiel + +10 % 3 +Hier wird 10 durch 3 geteilt. Die 3 passt dreimal in die 10, mit einem Rest von 1. Daher wird result 1 sein. + +Normalerweise wird Modulo verwendet, um zu prüfen, ob eine Zahl gerade oder ungerade ist: + +Wenn eine Zahl gerade ist, lässt die Division durch 2 einen Rest von 0. +Wenn eine Zahl ungerade ist, lässt die Division durch 2 einen Rest von 1. +Finden Sie zum Beispiel Zeilen mit geraden Nummern: + +SELECT * FROM table WHERE id % 2 = 0; +Oder zum Durchlaufen von Werten: + +number % 12 (gibt 0-11 zurück) +number % 8 (gibt 0-7 zurück) +Gruppieren Sie zum Beispiel Elemente in 5er-Gruppen: + +SELECT item_number % 5 as group_number FROM inventory; + + +Welche Abfrage wählt nur ungerade Zeilen aus? +SELECT * FROM users WHERE id % 2 = 1; + +Vervollständigen Sie die Abfrage, um Produkte in 4er-Gruppen zu gruppieren: + +SELECT product_id % 4 as group_num FROM products; -- hier wurde nur % hinzugefügt + + +Welchen Wertebereich kann number % 7 zurückgeben? + +0 through 6 + +Der Rest bei der Division durch 7 ist immer kleiner als 7 und reicht von 0 bis 6. + + + + #####################################################