English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Die HAVING-Klausel ermöglicht es Ihnen, Bedingungen zu spezifizieren, um zu bestimmen, welche Gruppen in den Endresultaten angezeigt werden.
Die WHERE-Klausel legt Bedingungen auf den ausgewählten Spalten fest, während die HAVING-Klausel Bedingungen auf den Gruppen legt, die durch den GROUP BY-Ausdruck erstellt werden.
Hier ist der Ort der HAVING-Klausel in der SELECT-Abfrage.
SELECT FROM WHERE GROUP BY HAVING ORDER BY
Die HAVING-Klausel muss nach dem GROUP BY-Ausdruck in der Abfrage stehen und wenn verwendet, muss sie vor dem ORDER BY-Ausdruck stehen. Hier ist die Syntax des SELECT-Ausdrucks einschließlich der HAVING-Klausel.
SELECT Spalte1, Spalte2 FROM Tabelle1, Tabelle2 WHERE [Bedingungen] GROUP BY Spalte1, Spalte2 HAVING [Bedingungen] ORDER BY Spalte1, Spalte2
Überlegen Sie sich die COMPANY-Tabelle mit folgenden Einträgen.
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 Kalifornien 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norwegen 20000.0 4 Mark 25 Reich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 Süden-Hall 45000.0 7 James 24 Houston 10000.0 8 Paul 24 Houston 20000.0 9 James 44 Norwegen 5000.0 10 James 45 Texas 5000.0
Hier ist ein Beispiel, das zeigt, wie Namen, deren Zähler kleiner als2Einträge.
sqlite > SELECT * FROM COMPANY GROUP BY name HAVING count(name) < 2;
Dies ergibt das folgende Ergebnis.
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 2 Allen 25 Texas 15000 5 David 27 Texas 85000 6 Kim 22 Süden-Hall 45000 4 Mark 25 Reich-Mond 65000 3 Teddy 23 Norwegen 20000
Nachfolgend ist ein Beispiel gezeigt, das die Anzahl der Namen anzeigt, die größer als2Einträge.
sqlite > SELECT * FROM COMPANY GROUP BY name HAVING count(name) > 2;
Dies ergibt das folgende Ergebnis.
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 10 James 45 Texas 5000