sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo funciona groupby y count en sql?

Una selección relacionalmente le da un conjunto de resultados. Si está agrupando su selección por un campo, las filas del conjunto de resultados se agruparán por ese campo y cada fila del conjunto de resultados será específica para el grupo de resultados.

Por ejemplo, tiene una tabla llamada Animales con los siguientes campos:

Type | Gender | Name

Si está ejecutando esta consulta (en MySQL, por ejemplo):

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

obtendrás todos los animales que no sean 'Pig'. Si una fila tiene Tipo ='cerdo', se incluirá en los resultados.

Esta consulta:

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

tendrá esta cantidad de filas:número de tipos * número de géneros

Puedes crear condiciones para tu grupo usando la cláusula "have" en MySQL.

Lea más aquí

La diferencia entre count(*) y count(browser) es que el primero devolverá el número de todos los registros, el segundo devolverá el número de todos los registros donde not (browser is null) .

Intente insertar una fila donde browser is null y luego ejecute 1) y 2), esta es la mejor prueba.