English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQLite HAVING Klausel

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.

Syntax

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

Online-Beispiel

Ü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