Uma seleção relacionalmente fornece um conjunto de resultados. Se você estiver agrupando sua seleção por um campo, as linhas do conjunto de resultados serão agrupadas por esse campo e cada linha do conjunto de resultados será específica para o grupo de resultados.
Por exemplo, você tem uma tabela chamada Animais com os seguintes campos:
Type | Gender | Name
Se você estiver executando esta consulta (no MySQL, por exemplo):
select Type, Gender, Name from Animals where Type <> 'Pig'
você terá todos os animais que não são 'Porco'. Se uma linha tiver Type ='pig', ela será incluída nos resultados.
Esta consulta:
select Type, Gender, count(*) from Animals group by Type, Gender
terá este número de linhas:número de tipos * número de gêneros
Você pode criar condições para o seu grupo usando a cláusula having no MySQL.
Leia mais aqui
A diferença entre
count(*)
e count(browser)
é que o primeiro retornará o número de todos os registros, o segundo retornará o número de todos os registros onde not (browser is null)
. Tente inserir uma linha em que
browser is null
e, em seguida, execute 1) e 2), este é o melhor teste.