MySQL cuenta registros coincidentes con COUNT

Mysql Count Matching Records With Count



La redundancia de datos se produce por muchas razones. Varias de las tareas complicadas con las que debe enfrentarse al trabajar con sistemas de bases de datos es tratar de descubrir valores duplicados. Para este propósito, usaremos el método agregado COUNT (). El método COUNT () devuelve la suma de filas que residen en una tabla específica. La función COUNT () le permite sumar todas las filas o solo las filas que coinciden con la condición definida. En esta guía, aprenderá cómo identificar valores duplicados para una o quizás más columnas de MySQL usando COUNT (). El método COUNT () tiene los siguientes tres tipos:

  • CONTAR(*)
  • COUNT (expresión)
  • COUNT (expresión DISTINCT)

Asegúrese de tener MySQL instalado en su sistema. Abra el shell del cliente de línea de comandos de MySQL e ingrese su contraseña para continuar. Veremos algunos ejemplos para contar los valores coincidentes utilizando el método COUNT ().









Tenemos una tabla 'social' en nuestro esquema de 'datos'. Comprobemos su registro mediante la siguiente consulta.



>> SELECCIONE * DE datos .social;





RECUENTO MySQL (*)

El método COUNT (*) se utiliza para contar el número de filas que residen en la tabla o contar el número de filas de acuerdo con la condición dada. Para comprobar el número total de filas en una tabla, 'social' prueba la siguiente consulta. Tenemos un total de 15 filas en la tabla según el resultado.

>> SELECCIONE CONTAR (*) DE datos .social;



Eche un vistazo al método COUNT (*) mientras define algunas condiciones. Tenemos que buscar el número de filas donde el nombre de usuario es el mismo que 'Mustafa'. Puede ver que solo tenemos 4 registros para este nombre en particular.

>> SELECCIONE CONTAR (*) DE datos .social DÓNDE Usuario ='Mustafa';

Para obtener la suma total de filas en las que el sitio web de los usuarios es 'Instagram', pruebe la consulta que se indica a continuación. La tabla 'social' tiene solo 4 registros para el sitio web 'Instagram'.

>> SELECCIONE CONTAR (*) DE datos .social DÓNDE Sitio web=‘Instagram’;

Para recuperar el número total de filas donde la 'Edad' es mayor que 18 es la siguiente:

>> SELECCIONE CONTAR (*) DE datos .social DÓNDE La edad> 18;

Busquemos los datos de las columnas 'Usuario' y 'Sitio web' de una tabla, donde el nombre de usuario comienza con el alfabeto 'M'. Pruebe las siguientes instrucciones en el shell.

>> SELECCIONE Usuario ,Sitio web DE datos .social DÓNDE Usuario igual que 'METRO%;

MySQL COUNT (expresión)

En MySQL, el método COUNT (expresión) solo se usa cuando desea contar valores no nulos de la columna 'expresión'. La 'expresión' sería el nombre de cualquier columna. Tomemos un ejemplo sencillo. Solo hemos contado los valores no nulos de una columna 'Sitio web', que está relacionada con la columna 'Edad' que tiene un valor igual a '25'. ¡Ver! Solo tenemos 4 registros no nulos para los usuarios que tienen '25 años' y que utilizan sitios web.

>> SELECCIONE CONTAR (Sitio web) DE datos .social DÓNDE La edad= 25;

MySQL COUNT (expresión DISTNCT)

En MySQL, el método COUNT (expresión DISTINCT) se usa para sumar valores no nulos y valores distintos de la columna 'expresión'. Para contar un número distinto de valores no nulos en la columna 'Edad', hemos estado usando la siguiente consulta. Encontrará 6 registros distintos y no nulos de la columna 'Edad' de la tabla 'social'. Esto significa que tenemos un total de 6 personas de diferentes edades.

>> SELECCIONE CONTAR ( DISTINTO La edad) DE datos .social;

CONTAR MySQL (IF (expresión))

Para un mayor énfasis, debe fusionar COUNT () con funciones de control de flujo. Para empezar, para una parte de la expresión que se usa en el método COUNT (), puede usar la función IF (). Puede resultar muy útil hacer esto para proporcionar un desglose rápido de la información dentro de una base de datos. Contaremos el número de filas con diferentes condiciones de edad y las dividiremos en tres columnas diferentes, que se pueden decir como categorías. Primero, COUNT (IF) contará las filas que tengan menos de 20 años y guardará este recuento en una nueva columna llamada 'Adolescente'. El segundo COUNT (IF) está contando las filas que tienen edades entre 20 y 30 mientras lo guarda en una columna 'Joven'. En tercer lugar, el último cuenta las filas que tienen edades superiores a 30 y se guardan en una columna 'Adultos'. Tenemos 5 adolescentes, 9 jóvenes y solo 1 persona madura en nuestro registro.

>> SELECCIONE CONTAR ( SI (La edad< 20,1, NULO ))'Adolescente', CONTAR ( SI (La edad ENTRE 20 Y 30,1, NULO ))'Joven', CONTAR ( SI (La edad> 30,1, NULO ))'Maduro' DE datos .social;

CONTAR MySQL (*) con cláusula GROUP BY

La instrucción GROUP BY es una instrucción SQL que se usa para agrupar filas con los mismos valores. Devuelve el número total de valores que residen en cada grupo. Por ejemplo, si desea verificar el número de cada usuario por separado, debe definir la columna 'Usuario' con la cláusula GROUP BY mientras cuenta los registros de cada usuario con COUNT (*).

>> SELECCIONE Usuario , CONTAR (*) DE datos .social AGRUPAR POR Usuario ;

Puede seleccionar más de dos columnas mientras realiza el recuento de filas junto con la cláusula GROUP BY, de la siguiente manera.

>> SELECCIONE Usuario ,La edad,Sitio web, CONTAR (*) DE datos .social AGRUPAR POR Sitio web;

Si queremos contar filas mientras usamos la cláusula WHERE que tiene algunas condiciones junto con GROUP BY y COUNT (*), también puede hacerlo. La siguiente consulta buscará y contará los registros de las columnas: 'Usuario', 'Sitio web' y 'Edad', donde el valor del sitio web es solo 'Instagram' y 'Snapchat'. Puede ver que solo tenemos 1 registro para ambos sitios web para diferentes usuarios.

>> SELECCIONE Usuario ,Sitio web,La edad, CONTAR (*) DE datos .social DÓNDE Sitio web=‘Instagram’ O Sitio web='Snapchat' AGRUPAR POR Sitio web,La edad;

MySQL COUNT (*) con la cláusula GROUP BY y ORDER BY

Probemos las cláusulas GROUP BY y ORDER BY junto con el método COUNT (). Busquemos y contamos las filas de la tabla 'social' mientras ordenamos los datos en orden descendente mediante esta consulta:

>> SELECCIONE Usuario ,Sitio web,La edad, CONTAR (*) DE datos .social AGRUPAR POR La edad ORDENAR POR CONTAR (*) DESC ;

La consulta que se indica a continuación contará primero las filas y luego mostrará los únicos registros que tengan COUNT mayor que 2 en orden ascendente.

>> SELECCIONE Usuario ,La edad, CONTAR (*) DE datos .social AGRUPAR POR La edad TENIENDO CONTAR (*) > 2 ORDENAR POR CONTAR (*) ASC ;

Conclusión

Hemos analizado todos los métodos posibles para contar los registros coincidentes o duplicados utilizando el método COUNT () con otras cláusulas diferentes.