SQL - DQL
Demo
SELECT a, b AS c, avg(d), 1000
FROM f NATURAL JOIN g JOIN h ON g.a = g.h
WHERE Name LIKE '%u%' AND NOT (Name LIKE 't%' OR Name LIKE '%t')
GROUP BY a, c
HAVING sum(e) > 1234
UNION (
SELECT DISTINCT i
FROM j JOIN k USING l LEFT JOIN m
)
LIMIT 5678;
SELECT (SELECT COUNT(∗)∗1.0 FROM Training) / (SELECT COUNT (∗) FROM Benutzer) AS FOOFOO;
Bemerkenswert
- bei
GROUP BY müssen alle selektierten Attribute, die nicht durch eine Aggregatfunktion gejagt werden, in der GROUP BY-Klausel stehen
-
LIKE vergleicht den ganzen string, aber % ist eine Wildcart, also basically .*
-
HAVING erlaubt quasi WHEN mit Aggregatfunktionen über GROUP BY-Mengen
- Sub
SELECTs nach UNION oder EXCEPT kommen in Klammern
-
RIGHT bzw. LEFT JOIN geben alle Tupel der spezifizierten Seite aus und ergänzen diese mit Daten der anderen Seite falls vorhanden
- nach
COUNT kommt idR `(*)
- cast to float zum Teilen mit
*1.0