Mysql
 sql >> Base de données >  >> RDS >> Mysql

comment fonctionne groupby et count en sql

Une sélection vous donne de manière relationnelle un ensemble de résultats. Si vous regroupez votre sélection par un champ, les lignes du jeu de résultats seront regroupées par ce champ et chaque ligne du jeu de résultats sera spécifique au groupe de résultats.

Par exemple vous avez une table nommée Animaux avec les champs suivants :

Type | Gender | Name

Si vous exécutez cette requête (dans MySQL, par exemple) :

 select Type, Gender, Name from Animals where Type <> 'Pig'

vous obtiendrez tous les animaux qui ne sont pas 'Cochon'. Si une ligne a Type ='pig', elle sera incluse dans les résultats.

Cette requête :

select Type, Gender, count(*) from Animals group by Type, Gender

aura ce nombre de lignes :nombre de types * nombre de sexes

Vous pouvez créer des conditions pour votre groupe en utilisant la clause having de MySQL.

En savoir plus ici

La différence entre count(*) et count(browser) est que le premier renverra le nombre de tous les enregistrements, le second renverra le nombre de tous les enregistrements où not (browser is null) .

Essayez d'insérer une ligne où browser is null puis exécutez 1) et 2), c'est le meilleur test.