Registres coincidents de MySQL Count amb COUNT

Mysql Count Matching Records With Count



La redundància de dades es produeix per molts motius. Diversos dels deures complicats que hauríeu d’afrontar mentre treballeu amb sistemes de bases de dades és intentar descobrir valors duplicats. Amb aquest propòsit, utilitzarem el mètode agregat COUNT (). El mètode COUNT () retorna la suma de files que resideixen en una taula específica. La funció COUNT () us permet sumar totes les files o només les files que coincideixen amb la condició definida. En aquesta guia, sabreu com identificar valors duplicats per a una o potser més columnes MySQL mitjançant COUNT (). El mètode COUNT () té els tres tipus següents:

  • COMPTE (*)
  • COUNT (expressió)
  • COUNT (expressió DISTINGUT)

Assegureu-vos que teniu MySQL instal·lat al vostre sistema. Obriu l’intèrpret d’ordres del client de línia de comandes MySQL i introduïu la vostra contrasenya per continuar. Veurem alguns exemples per comptar els valors coincidents mitjançant el mètode COUNT ().









Tenim una taula 'social' al nostre esquema 'dades'. Comprovem el seu registre mitjançant la següent consulta.



>> SELECCIONA * DE dades .social;





MySQL COUNT (*)

El mètode COUNT (*) s’utilitza per comptar el nombre de files que hi ha a la taula o comptar el nombre de files segons la condició donada. Per comprovar el nombre total de files d'una taula, 'social' proveu la consulta següent. Tenim un total de 15 files a la taula segons el resultat.

>> SELECCIONA COMPTE (*) DE dades .social;



Feu una ullada al mètode COUNT (*) mentre definiu algunes condicions. Hem d’aconseguir el nombre de files on el nom d’usuari és el mateix que ‘Mustafa’. Podeu veure que només tenim 4 registres per a aquest nom en particular.

>> SELECCIONA COMPTE (*) DE dades .social ON Usuari ='Mustafa';

Per obtenir la suma total de files on el lloc web dels usuaris és 'Instagram', proveu la consulta que s'indica a continuació. La taula ‘social’ només té 4 registres per al lloc web ‘Instagram’.

>> SELECCIONA COMPTE (*) DE dades .social ON Lloc web='Instagram';

Per recuperar el nombre total de files en què l’edat és superior a 18, seguiu aquests passos:

>> SELECCIONA COMPTE (*) DE dades .social ON Edat> 18;

Recuperem les dades de les columnes 'Usuari' i 'Lloc web' d'una taula, on el nom d'usuari comença amb l'alfabet 'M'. Proveu les instruccions següents a l'intèrpret d'ordres.

>> SELECCIONA Usuari ,Lloc web DE dades .social ON Usuari M'agrada ‘M%';

MySQL COUNT (expressió)

A MySQL, el mètode COUNT (expressió) només s’utilitza quan es vol comptar valors no nuls de la columna ‘expressió’. L’expressió seria el nom de qualsevol columna. Prenem un exemple senzill. Només hem comptabilitzat els valors no nuls d’una columna 'Lloc web', que està relacionada amb la columna 'Edat' que té un valor igual a '25'. Mireu! Només tenim 4 registres no nuls per als usuaris que tinguin ‘25 anys’ que facin servir llocs web.

>> SELECCIONA COMPTE (Lloc web) DE dades .social ON Edat= 25;

MySQL COUNT (expressió DISTNCT)

A MySQL, el mètode COUNT (expressió DISTINCT) s’utilitza per sumar valors no nuls i valors diferents de la columna ‘expressió’. Per comptar un nombre diferent de valors no nuls a la columna 'Edat', hem utilitzat la consulta següent. Trobareu 6 registres diferents de la columna 'Edat' no nuls i diferents de la taula 'social'. Això significa que tenim un total de 6 persones amb edats diferents.

>> SELECCIONA COMPTE ( DISTINGUT Edat) DE dades .social;

MySQL COUNT (IF (expressió))

Per fer un gran èmfasi, hauríeu de combinar COUNT () amb funcions de control de flux. Per començar, per a una part de l’expressió que s’utilitza al mètode COUNT (), podeu utilitzar la funció IF (). Pot ser molt útil fer-ho per proporcionar un desglossament ràpid de la informació dins d’una base de dades. Comptarem el nombre de files amb diferents condicions d’edat i les dividirem en tres columnes diferents, que es poden dir com a categories. En primer lloc, COUNT (IF) comptarà les files amb menys de 20 anys i desarà aquest recompte en una nova columna anomenada 'Adolescent'. Second COUNT (IF) compta les files amb edats compreses entre els 20 i els 30 anys mentre es desa a una columna 'Jove'. En tercer lloc, l'última compta les files amb edats superiors a 30 i desades a la columna 'Madur'. Tenim 5 adolescents, 9 joves i només 1 persona madura al nostre historial.

>> SELECCIONA COMPTE ( SI (Edat< 20,1, NUL ))'Adolescent', COMPTE ( SI (Edat ENTRE 20 I 30,1, NUL ))'Jove', COMPTE ( SI (Edat> 30,1, NUL ))'Madur' DE dades .social;

MySQL COUNT (*) amb clàusula GROUP BY

La sentència GROUP BY és una instrucció SQL que s’utilitza per a files de grups amb els mateixos valors. Retorna el nombre total de valors que resideixen a cada grup. Per exemple, si voleu comprovar el número de cada usuari per separat, heu de definir la columna 'Usuari' amb la clàusula GROUP BY mentre es comptabilitzen els registres de cada usuari amb COUNT (*).

>> SELECCIONA Usuari , COMPTE (*) DE dades .social AGRUPAR PER Usuari ;

Podeu seleccionar més de dues columnes mentre realitzeu el recompte de files juntament amb la clàusula GROUP BY, de la manera següent.

>> SELECCIONA Usuari ,Edat,Lloc web, COMPTE (*) DE dades .social AGRUPAR PER Lloc web;

Si volem comptar files mentre s'utilitza la clàusula WHERE que té algunes condicions al costat de GROUP BY i COUNT (*), també podeu fer-ho. La consulta següent obtindrà i comptabilitzarà els registres de les columnes: 'Usuari', 'Lloc web' i 'Edat', on el valor del lloc web només és 'Instagram' i 'Snapchat'. Podeu veure que només tenim 1 registre per als dos llocs web per a usuaris diferents.

>> SELECCIONA Usuari ,Lloc web,Edat, COMPTE (*) DE dades .social ON Lloc web='Instagram' O bé Lloc web='Snapchat' AGRUPAR PER Lloc web,Edat;

MySQL COUNT (*) amb clàusula GROUP BY i ORDER BY

Provem les clàusules GROUP BY i ORDER BY juntes amb el mètode COUNT (). Recuperem i comptem les files de la taula 'social' mentre organitzem les dades en ordre descendent mitjançant aquesta consulta:

>> SELECCIONA Usuari ,Lloc web,Edat, COMPTE (*) DE dades .social AGRUPAR PER Edat DEMANAT PER COMPTE (*) DESC ;

La consulta indicada a continuació comptarà primer les files i, a continuació, mostrarà els únics registres de COUNT superior a 2 en ordre ascendent.

>> SELECCIONA Usuari ,Edat, COMPTE (*) DE dades .social AGRUPAR PER Edat TENIR COMPTE (*) > 2 DEMANAT PER COMPTE (*) ASC ;

Conclusió

Hem recorregut tots els mètodes possibles per comptar els registres coincidents o duplicats mitjançant el mètode COUNT () amb altres clàusules diferents.