Eine Auswahl ergibt relational eine Ergebnismenge. Wenn Sie Ihre Auswahl nach einem Feld gruppieren, werden die Zeilen der Ergebnismenge nach diesem Feld gruppiert und jede Zeile der Ergebnismenge ist spezifisch für die Gruppe der Ergebnisse.
Sie haben zum Beispiel eine Tabelle namens Tiere mit den folgenden Feldern:
Type | Gender | Name
Wenn Sie diese Abfrage ausführen (z. B. in MySQL):
select Type, Gender, Name from Animals where Type <> 'Pig'
Sie erhalten alle Tiere, die nicht "Schweine" sind. Wenn eine Zeile Type ='pig' hat, wird sie in die Ergebnisse aufgenommen.
Diese Abfrage:
select Type, Gender, count(*) from Animals group by Type, Gender
wird so viele Zeilen haben:Anzahl der Typen * Anzahl der Geschlechter
Sie können Bedingungen für Ihre Gruppe erstellen, indem Sie die Having-Klausel in MySQL verwenden.
Weitere Informationen finden Sie hier
Der Unterschied zwischen count(*)
und count(browser)
ist, dass der erste die Anzahl aller Datensätze zurückgibt, der zweite die Anzahl aller Datensätze zurückgibt, wobei not (browser is null)
.
Versuchen Sie, eine Zeile einzufügen, in der browser is null
und dann 1) und 2) ausführen, das ist der beste Test.