Heim >Datenbank >MySQL-Tutorial >Wie filtere ich Gruppen basierend auf der Anzahl aggregierter Funktionen in SQL?

Wie filtere ich Gruppen basierend auf der Anzahl aggregierter Funktionen in SQL?

DDD
DDDOriginal
2025-01-02 20:46:40700Durchsuche

How to Filter Groups Based on Aggregate Function Counts in SQL?

Gruppieren und Filtern nach aggregiertem Funktionswert

Möglicherweise stoßen Sie auf ein Szenario, in dem Sie Ergebnisse gruppieren und dann nach der Anzahl der Zeilen filtern müssen in jeder Gruppe. Während die vorgeschlagene Abfrage SELECT * FROM mytable WHERE COUNT(*) > 1 GROUP BY-Name ist syntaktisch falsch, er hebt die gewünschte Funktionalität hervor.

Um dies zu erreichen, können Sie die HAVING-Klausel verwenden, die es Ihnen ermöglicht, Bedingungen auf Aggregatfunktionen anzuwenden. Die folgende modifizierte Abfrage wird Ihr Ziel erreichen:

SELECT name, COUNT(*)
FROM mytable
GROUP BY name
HAVING COUNT(*) > 1

In dieser Abfrage:

  • SELECT name, COUNT(*): Wählt die Namensspalte und die Anzahl aller Zeilen darin aus jede Gruppe als COUNT(*).
  • FROM mytable: Gibt die Tabelle an, nach der gruppiert und gefiltert werden soll.
  • GROUP BY Name: Gruppiert die Ergebnisse nach der Namensspalte.
  • HAVING COUNT(*) > 1: Filtert die gruppierten Ergebnisse und berücksichtigt nur Gruppen, bei denen die Anzahl der Zeilen größer als 1 ist.

Diese Abfrage ruft den Namen und die Anzahl aller Gruppen ab, bei denen die Anzahl 1 überschreitet, sodass Sie sie identifizieren können und filtern Sie basierend auf dem Vorkommen von Werten.

Das obige ist der detaillierte Inhalt vonWie filtere ich Gruppen basierend auf der Anzahl aggregierter Funktionen in SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn