mysql count count distinct with examples
Aprenda sobre los usos de varias formas de la función MySQL COUNT con ejemplos:
COUNT es una función agregada simple, pero muy efectiva y ampliamente utilizada. En palabras muy simples, se utiliza para CONTAR la cantidad de filas con una consulta y un criterio SELECT determinados.
Este tutorial explicará la sintaxis y el uso de COUNT simple, COUNT con condiciones, COUNT con DISTINCT, COUNT con GROUP BY, etc.
Lo que vas a aprender:
Varios tipos de recuento de MySQL
Escribe | Descripción | Sintaxis |
---|---|---|
CONTAR(*) | La función COUNT (*) devuelve el no. de filas recuperadas por la instrucción SELECT, incluidas las filas que contienen valores NULL y Duplicate | SELECCIONAR COUNT (*) DE {tableName} |
COUNT (expresión) | COUNT (expresión) contaría el valor donde expresión no es nula. La expresión puede ser algo simple como el nombre de una columna o una expresión compleja como la función SI. | SELECCIONAR COUNT (expresión) de {tableName} |
COUNT (expresión DISTINCT) | COUNT (expresión DISTINCT): la palabra clave DISTINCT daría lugar a contar solo valores únicos no nulos en la expresión. Por ejemplo - COUNT (DISTINCT customerName): solo contaría las filas con valores distintos para el nombre del cliente | SELECT COUNT (expresión DISTINCT) de {tableName} |
Ejemplos de MySQL COUNT
Datos de prueba
Utilizaríamos las siguientes tablas y datos para los ejemplos de la función MySQL COUNT.
Mesas:
# 1) Detalles_del_producto
Almacena detalles de varios productos en una tienda.
- product_id - INT
- nombre_producto - VARCHAR
- precio - DECIMAL
- category_id - INT (FOREIGN KEY - id de la tabla Category_Details)
# 2) Category_Details:
- category_id: INT
- nombre_categoría: VARCHAR
Creemos las tablas e insertemos datos ficticios mediante las consultas siguientes:
|_+_|Consulte las imágenes de las tablas con los datos de prueba creados anteriormente.
Tabla Product_Details
Tabla Category_Details
CUENTA simple
En esta sección, veremos la función COUNT de la manera más simplista.
Usaremos COUNT para devolver el número de filas sin ningún control NULL o DISTINCT.
|_+_|Producción:
CONTAR(*) |
---|
11 |
Con la consulta anterior, solo obtendremos el número de filas devueltas contra la declaración de selección.
COUNT con condiciones
Ahora usaremos la función COUNT con condiciones o valores de columna.
Ejemplo: Supongamos que queremos contar el no. de filas donde no hay valores no nulos para nombres de productos.
Podemos agregar product_name (o cualquier nombre de columna dado) como la expresión en la función COUNT, que luego daría como resultado un recuento de filas que tienen filas de product_name NON NULL.
|_+_|En este caso, la salida será 11 (ya que todos los datos de prueba ya tienen valores para la columna product_name)
Producción:
COUNT (nombre_producto) |
---|
11 |
Agreguemos una nueva fila, con un valor NULL para product_name.
|_+_| |_+_|La consulta COUNT anterior devolverá el recuento de todas las filas que tengan un nombre_producto NO NULO.
Dado que insertamos una fila con NULL product_name, eso no se devolvería en los resultados. Entonces la salida seguiría siendo de 11 filas.
Producción:
copiadora de dvd gratis para windows 10
COUNT (nombre_producto) |
---|
11 |
COUNT con DISTINCT
En los ejemplos anteriores, usamos la función COUNT con una expresión. También podemos combinar la expresión con un comando DISTINCT para obtener todos los valores NON NULL, que también son ÚNICOS.
Intentemos obtener DISTINCT category_id de la tabla product_details.
|_+_|Producción:
COUNT (DISTINCT category_id) |
---|
4 |
Como puede ver arriba, la salida es 4, que representa el número total. de category_id’s en la tabla product_details.
COUNT con GROUP BY
Veamos un ejemplo en el que queremos usar COUNT junto con GROUP BY. Esta es una combinación importante en la que podemos obtener un CONTAR contra una columna agrupada y analizar datos en función de diferentes valores de una columna agrupada de destino.
Por ejemplo: Encuentra el no. de productos en cada categoría de la tabla product_details.
|_+_|categoria ID | CONTAR(*) |
---|---|
1 | 7 |
2 | 1 |
4 | 1 |
5 | 2 |
Como podemos ver arriba, contra cada category_id, la columna COUNT (*) representa el número de filas que pertenecen a cada category_id.
CUENTA Con SI
Veamos un ejemplo del uso de una condición SI dentro de la función COUNT. Podemos colocar una expresión IF dentro de la función COUNT y establecer el valor en NULL para la condición falsa y cualquier valor no nulo para la condición verdadera.
Cada valor NO NULO se contabilizaría como una sola fila w.r.t COUNT función.
Por ejemplo: Utilice la función COUNT para encontrar todos los productos dentro del rango de precio de 20 $.
|_+_|Producción:
count_less_than_20 |
---|
7 |
En la consulta anterior, hemos obtenido el COUNT de todos los productos cuyo rango de precio está entre 0 y 20. Para la condición FALSE, hemos establecido el valor en NULL, que no se cuenta, cuando la fila se evalúa para diferentes valores de columna. .
CUENTA con UNIONES
COUNT también se puede usar con declaraciones JOIN. Dado que COUNT se aplica al no. de filas, se puede usar con cualquier combinación de una consulta que opere en una sola tabla o en varias tablas usando JOINS.
Ejemplo: Únase a la tabla product_details y category_details y busque el recuento por category_name en la tabla product_details.
|_+_|Producción:
nombre de la categoría | COUNT (nombre_categoría) |
---|---|
FMCG | 7 |
MUEBLE | 1 |
ACCESORIOS | 1 |
ELECTRÓNICA | 2 |
Truco y consejo
Uso de alias de columna para la columna que muestra el resultado de la función COUNT: Podemos usar un alias de columna junto con la función COUNT para tener nombres de columna definidos por el usuario para la columna que muestra los resultados de la función COUNT.
Por ejemplo: Supongamos que queremos contar el número de categorías en la tabla category_details y nombrar la columna resultante como category_count, podemos usar la siguiente consulta:
|_+_|Producción:
cuenta_categoría |
---|
5 |
Preguntas frecuentes
P # 1) ¿Cómo uso la función COUNT en MySQL?
Responder: La función COUNT es una función agregada que se puede utilizar de 3 formas.
- CONTAR(*) - Esto CONtaría todas las filas devueltas por SELECT QUERY.
- COUNT (expresión) - Esto CONTARÍA todos los valores NON NULL para la expresión.
- COUNT (expresión DISTINCT) - Esto CONTARÁ todos los valores NON NULL y UNIQUE en la expresión.
P # 2) ¿Cuál es la diferencia entre Count (*) y Count (1) en SQL?
Responder: Ambas declaraciones se comportan de manera idéntica. De la definición de MySQL de COUNT, cualquier cosa entre paréntesis () es una expresión, y cualquier valor NON NULL se contará como 1.
Entonces, en este caso, tanto * como 1 se tratan como NON NULL y se devuelve el mismo resultado, es decir, el resultado de las dos consultas siguientes sería el mismo.
|_+_|Conclusión
En este tutorial, aprendimos sobre la función COUNT y las diferentes variaciones proporcionadas por MySQL.
También vimos cómo podemos usar COUNT con diferentes escenarios, como combinar COUNT con GROUP BY y escribir una función SI dentro de la función COUNT.
La función COUNT es una de las funciones más importantes y más utilizadas en MySQL y se utiliza principalmente para agregar datos según las condiciones especificadas para una o más tablas.
Lectura recomendada
- MySQL ALTER TABLE - Cómo agregar una columna a una tabla en MySQL
- Funciones MySQL CONCAT y GROUP_CONCAT con ejemplos
- MySQL CREAR USUARIO: Cómo crear un nuevo usuario en MySQL
- Tutorial JOIN de MySQL: interno, externo, cruzado, izquierdo, derecho y propio
- MySQL LIKE - Tutorial con ejemplos de sintaxis y uso
- Cláusula GROUP BY de MySQL - Tutorial con ejemplos
- Funciones MySQL Substring y Substring_Index con ejemplos
- Tutorial de creación de vistas de MySQL con ejemplos de código