Zusammenfassung :In diesem Tutorial lernen Sie, wie Sie SQLite HAVING
verwenden -Klausel, um eine Filterbedingung für eine Gruppe oder ein Aggregat anzugeben.
Einführung in SQLite HAVING
Klausel
SQLite HAVING
-Klausel ist eine optionale Klausel von SELECT
Erklärung. Das HAVING
-Klausel gibt eine Suchbedingung für eine Gruppe an.
Du verwendest oft den HAVING
-Klausel mit dem GROUP BY
Klausel. Die GROUP BY
-Klausel gruppiert einen Satz von Zeilen in einen Satz von Zusammenfassungszeilen oder -gruppen. Dann das HAVING
-Klausel filtert Gruppen basierend auf einer bestimmten Bedingung.
Wenn Sie den HAVING
verwenden -Klausel müssen Sie GROUP BY
einschließen Klausel; andernfalls erhalten Sie die folgende Fehlermeldung:
Error: a GROUP BY clause is required before HAVING
Code language: JavaScript (javascript)
Beachten Sie, dass HAVING
-Klausel wird nach GROUP BY
angewendet -Klausel, wohingegen die WHERE
-Klausel wird vor GROUP BY
angewendet Klausel.
Das Folgende veranschaulicht die Syntax des HAVING
Klausel:
SELECT
column_1,
column_2,
aggregate_function (column_3)
FROM
table
GROUP BY
column_1,
column_2
HAVING
search_condition;
Code language: SQL (Structured Query Language) (sql)
In dieser Syntax ist das HAVING
-Klausel wertet die search_condition
aus für jede Gruppe als boolescher Ausdruck. Eine Gruppe wird nur dann in die endgültige Ergebnismenge aufgenommen, wenn die Bewertung wahr ist.
SQLite HAVING
Klauselbeispiele
Wir werden die tracks
verwenden Tabelle in der Beispieldatenbank zur Demonstration.
Um die Anzahl der Titel für jedes Album zu finden, verwenden Sie GROUP BY
Klausel wie folgt:
SELECT
albumid,
COUNT(trackid)
FROM
tracks
GROUP BY
albumid;
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Um die Nummern der Titel für das Album mit der ID 1 zu finden, fügen wir einen HAVING
hinzu Klausel der folgenden Anweisung:
SELECT
albumid,
COUNT(trackid)
FROM
tracks
GROUP BY
albumid
HAVING albumid = 1;
Probieren Sie es aus
Wir haben auf die AlbumId
verwiesen in der Spalte HAVING
Klausel.
Um Alben zu finden, die eine Anzahl von Titeln zwischen 18 und 20 haben, verwenden Sie die Aggregatfunktion im HAVING
Klausel wie in der folgenden Anweisung gezeigt:
SELECT
albumid,
COUNT(trackid)
FROM
tracks
GROUP BY
albumid
HAVING
COUNT(albumid) BETWEEN 18 AND 20
ORDER BY albumid;
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
SQLite HAVING
-Klausel mit INNER JOIN
Beispiel
Die folgende Anweisung fragt Daten von tracks
ab und albums
Tabellen, die Inner Join verwenden, um Alben mit einer Gesamtlänge von mehr als 60.000.000 Millisekunden zu finden.
SELECT
tracks.AlbumId,
title,
SUM(Milliseconds) AS length
FROM
tracks
INNER JOIN albums ON albums.AlbumId = tracks.AlbumId
GROUP BY
tracks.AlbumId
HAVING
length > 60000000;
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
In diesem Tutorial haben Sie gelernt, wie Sie HAVING
von SQLite verwenden -Klausel zur Angabe der Suchbedingung für Gruppen.