· Andrés Ledo · MySQL · Lectura en 6 min
Cómo usar la función COUNT en MySQL
Aprende como utilizar correctamente la función count en MySQL

MySQL es un sistema de gestión de bases de datos relacionales muy popular y potente, que permite almacenar y manipular grandes cantidades de datos. Una de las operaciones más comunes que se realizan con MySQL es contar el número de registros que cumplen ciertos criterios, ya sea para obtener estadísticas, realizar cálculos o filtrar resultados. Para ello, MySQL dispone de la función COUNT
, que devuelve el número de filas de una consulta SELECT.
En este artículo, vamos a explicar cómo usar la función COUNT
en MySQL, qué tipos de argumentos puede recibir, cómo combinarla con otras cláusulas como GROUP BY, HAVING o DISTINCT, y qué ventajas e inconvenientes tiene su uso. También veremos algunos ejemplos prácticos de cómo aplicar la función COUNT
a diferentes casos de empleo.
Índice
¿Qué es la función COUNT en MySQL?
La función COUNT
es una función de agregación, es decir, una función que opera sobre un conjunto de valores y devuelve un único valor. En el caso de la función COUNT
, el valor que devuelve es el número de filas que forman el conjunto. La función COUNT
se puede emplear tanto con columnas como con expresiones, y también se puede utilizar con el símbolo * para contar todas las filas de una tabla.
La sintaxis básica de la función COUNT
es la siguiente:
SELECT COUNT(argumento) FROM tabla [WHERE condicion];
Donde:
argumento
puede ser el nombre de una columna, una expresión o el símbolo *.tabla
es el nombre de la tabla sobre la que se realiza la consulta.condicion
es una expresión lógica que filtra las filas que se quieren contar.
Veamos algunos ejemplos de cómo usar la función COUNT
con diferentes argumentos.
Contar todas las filas de una tabla
Si queremos contar todas las filas de una tabla, sin importar los valores que contengan, podemos usar la función COUNT
con el símbolo *. Por ejemplo, si tenemos una tabla llamada clientes
con los datos de nuestros clientes, podemos contar cuántos clientes tenemos en total con la siguiente consulta:
SELECT COUNT(*) FROM clientes;
El resultado sería algo así:
COUNT(*) |
---|
100 |
Esto significa que tenemos 100 clientes registrados en nuestra tabla.
Contar las filas que cumplen una condición
Si queremos contar solo las filas que cumplen una determinada condición, podemos usar la cláusula WHERE para filtrarlas. Por ejemplo, si queremos contar cuántos clientes tenemos de una determinada ciudad, podemos usar la siguiente consulta:
SELECT COUNT(*) FROM clientes WHERE ciudad = 'Madrid';
El resultado sería algo así:
COUNT(*) |
---|
25 |
Esto significa que tenemos 25 clientes que viven en Madrid.
Contar los valores distintos de una columna
Si queremos contar los valores distintos o únicos que hay en una columna, podemos usar la palabra clave DISTINCT dentro del argumento de la función COUNT
. Por ejemplo, si queremos contar cuántas ciudades distintas hay entre nuestros clientes, podemos usar la siguiente consulta:
SELECT COUNT(DISTINCT ciudad) FROM clientes;
El resultado sería algo así:
COUNT(DISTINCT ciudad) |
---|
10 |
Esto significa que nuestros clientes provienen de 10 ciudades diferentes.
¿Cómo combinar la función COUNT con otras cláusulas?
La función COUNT
se puede combinar con otras cláusulas SQL para obtener resultados más complejos y detallados. Algunas de las cláusulas más habituales son GROUP BY, HAVING y ORDER BY.
La cláusula GROUP BY
La cláusula GROUP BY permite agrupar las filas según los valores de una o más columnas, y aplicar funciones de agregación a cada grupo. De esta forma, podemos obtener subtotales o estadísticas por grupos. Por ejemplo, si queremos contar cuántos clientes tenemos por cada ciudad, podemos usar la cláusula GROUP BY junto con la función COUNT
de la siguiente forma:
SELECT ciudad, COUNT(*) FROM clientes GROUP BY ciudad;
El resultado sería algo así:
ciudad | COUNT(*) |
---|---|
Madrid | 25 |
Barcelona | 20 |
Valencia | 15 |
Sevilla | 10 |
Bilbao | 5 |
… | … |
Esto significa que tenemos 25 clientes de Madrid, 20 de Barcelona, 15 de Valencia, etc.
La cláusula HAVING
La cláusula HAVING permite filtrar los grupos que se obtienen con la cláusula GROUP BY, según el valor de una función de agregación. De esta forma, podemos obtener solo los grupos que cumplen ciertos criterios. Por ejemplo, si queremos contar solo las ciudades que tienen más de 10 clientes, podemos usar la cláusula HAVING junto con la función COUNT
de la siguiente forma:
SELECT ciudad, COUNT(*) FROM clientes GROUP BY ciudad HAVING COUNT(*) > 10;
El resultado sería algo así:
ciudad | COUNT(*) |
---|---|
Madrid | 25 |
Barcelona | 20 |
Valencia | 15 |
Esto significa que solo hay tres ciudades que tienen más de 10 clientes: Madrid, Barcelona y Valencia.
La cláusula ORDER BY
La cláusula ORDER BY permite ordenar las filas según el valor de una o más columnas, en orden ascendente (ASC) o descendente (DESC). De esta forma, podemos obtener los resultados ordenados según algún criterio. Por ejemplo, si queremos contar los clientes por ciudad y ordenarlos de mayor a menor número, podemos usar la cláusula ORDER BY junto con la función COUNT
de la siguiente forma:
SELECT ciudad, COUNT(*) FROM clientes GROUP BY ciudad ORDER BY COUNT(*) DESC;
El resultado sería algo así:
ciudad | COUNT(*) |
---|---|
Madrid | 25 |
Barcelona | 20 |
Valencia | 15 |
Sevilla | 10 |
Bilbao | 5 |
… | … |
Esto significa que Madrid es la ciudad con más clientes, seguida de Barcelona, Valencia, etc.
¿Qué ventajas e inconvenientes tiene el uso de la función COUNT?
La utilización de la función COUNT
tiene algunas ventajas e inconvenientes que conviene tener en cuenta a la hora de diseñar y optimizar nuestras consultas SQL. Algunos de ellos son los siguientes:
Ventajas:
La función
COUNT
es una forma sencilla y rápida de obtener el número de registros que cumplen ciertos criterios, sin necesidad de recorrer todos los registros manualmente.La función
COUNT
se puede combinar con otras funciones y cláusulas SQL para obtener resultados más complejos y detallados, como subtotales, estadísticas o filtros por grupos.La función
COUNT
se puede optimizar mediante el empleo de índices en las columnas que se usan como argumentos o condiciones, lo que reduce el tiempo de ejecución de las consultas.
Inconvenientes:
La función
COUNT
puede consumir muchos recursos del servidor si se aplica a tablas muy grandes o con muchas columnas, lo que puede afectar al rendimiento general del sistema.La función
COUNT
puede devolver resultados erróneos o inesperados si no se usa correctamente o si no se tiene en cuenta el tipo de datos o los valores nulos de las columnas que se usan como argumentos o condiciones.La función
COUNT
puede generar ambigüedades o confusiones si no se especifica claramente el argumento que se quiere contar o el conjunto de filas sobre el que se quiere aplicar.
En este artículo hemos visto cómo utilizar la función COUNT
en MySQL, qué tipos de argumentos puede recibir, cómo combinarla con otras cláusulas como GROUP BY, HAVING o DISTINCT, y qué ventajas e inconvenientes tiene su uso. Hemos visto también algunos ejemplos prácticos de cómo aplicar la función COUNT
a diferentes casos de empleo.
La función COUNT
es una herramienta muy útil para contar el número de registros que cumplen ciertos criterios en MySQL, pero hay que emplearla con cuidado y conocimiento para obtener los resultados correctos y optimizar el rendimiento de nuestras consultas. Esperamos que este artículo te haya sido de ayuda y te invitamos a seguir aprendiendo sobre MySQL con nosotros.
Articulos relacionados:
Este artículo forma parte del tutorial de MySQL.