Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie funktionieren Groupby und Count in SQL?

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.