Artículos de Tecnología > Data Science

select count(*), count(1) y count(nombre): batalla de los counts de SQL

Guilherme Silveira
Guilherme Silveira

Cuando vamos a usar el count en la base de datos, nos enfrentamos con varias opciones de SQL, conozca las diferencias entre las diversas posibilidades de contar las filas de la tabla con el recuento en una base de datos.

Como ejemplo, ¿cuántos productos tiene mi empresa?

select count (nombre) from Productos;
> 198

Pero...

select count (id) from Productos;
> 200

¿Cómo así? ¿SQL está loco? ¿De nuevo?

select id, nombre from Productos where nombre is null;
> 190, null
> 196, null

¡El select count verifica el número de líneas no nulas dentro del recuento que desea hacer! Si tenía un nombre nulo, ¡no contaba! ¿Resultado? Error =/

Ten mucho cuidado con tus counts. Entonces, ¿qué debo decirte? Si deseas contar valores no nulos, use count(campo), como lo hicimos nosotros:

select count(nombre) from Productos;
> 198

Pero si deseas contarlos a todos, count estrella en él para no correr el riesgo, contará la cantidad de registros devueltos, independientemente de los valores nulos:

select count(\*) from Productos;
> 200

¿Y el 1? ¿Por qué count(1)?

select count(1) from Productos;
> 200

El count (1) sería una alternativa para count(campo) porque estaría seguro de que nunca sería nulo, y que no necesitaría leer el campo... sucede que se vuelve extraño select count (1), y ¿deseas tener un código extraño o un código legible?

Como dije, prefiero contar estrellas ... ¿y tú, contas estrellas, contas 1, o contas id?

Y ahora, el desafío: ¿cuál es el resultado del SQL a seguir?

select count(nombre) from Products where nombre is null;
> ????

¿Te gustaran estas prácticas y consejos de SQL? ¿Qué tal aprender más sobre Data Science? Entonces, ¡Mira nuestros cursos aquí en Alura!

Artículos de Tecnología > Data Science

En Alura encontrarás variados cursos sobre Data Science. ¡Comienza ahora!

Precios en:
USD
  • USD
  • BOB
  • CLP
  • COP
  • USD
  • PEN
  • MXN
  • UYU

Semestral

  • 270 cursos

    Cursos de Programación, Front End, Data Science, Innovación y Gestión.

  • Videos y actividades 100% en Español
  • Certificado de participación
  • Estudia las 24 horas, los 7 días de la semana
  • Foro y comunidad exclusiva para resolver tus dudas
  • Luri, la inteligencia artificial de Alura

    Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana

  • Acceso a todo el contenido de la plataforma por 6 meses
US$ 65.90
un solo pago de US$ 65.90
¡QUIERO EMPEZAR A ESTUDIAR!

Paga en moneda local en los siguientes países

Anual

  • 270 cursos

    Cursos de Programación, Front End, Data Science, Innovación y Gestión.

  • Videos y actividades 100% en Español
  • Certificado de participación
  • Estudia las 24 horas, los 7 días de la semana
  • Foro y comunidad exclusiva para resolver tus dudas
  • Luri, la inteligencia artificial de Alura

    Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana

  • Acceso a todo el contenido de la plataforma por 12 meses
US$ 99.90
un solo pago de US$ 99.90
¡QUIERO EMPEZAR A ESTUDIAR!

Paga en moneda local en los siguientes países

Acceso a todos
los cursos

Estudia las 24 horas,
dónde y cuándo quieras

Nuevos cursos
cada semana