MySQL MariaDB

Compte MySQL correspondant aux enregistrements avec COUNT

Compte MySQL correspondant aux enregistrements avec COUNT

La redondance des données se produit pour de nombreuses raisons. Plusieurs des tâches complexes auxquelles vous devez faire face lorsque vous travaillez avec des systèmes de base de données tentent de découvrir des valeurs en double. À cette fin, nous utiliserons la méthode d'agrégation COUNT(). La méthode COUNT() renvoie la somme des lignes résidant dans une table spécifique. La fonction COUNT() vous permet de sommer toutes les lignes ou uniquement les lignes correspondant à la condition définie. Dans ce guide, vous apprendrez à identifier les valeurs en double pour une ou peut-être plusieurs colonnes MySQL à l'aide de COUNT(). La méthode COUNT() a les trois types suivants :

Assurez-vous que MySQL est installé sur votre système. Ouvrez le shell client en ligne de commande MySQL et entrez votre mot de passe pour continuer. Nous examinerons quelques exemples de comptage des valeurs correspondantes à l'aide de la méthode COUNT().

Nous avons une table 'social' dans notre schéma 'data'. Vérifions son enregistrement via la requête suivante.

>> SÉLECTIONNER * À PARTIR des données.social;

COUNT MySQL(*)

La méthode COUNT(*) est utilisée pour compter le nombre de lignes résidant dans la table ou compter le nombre de lignes selon la condition donnée. Pour vérifier le nombre total de lignes dans un tableau, 'social' essayez la requête ci-dessous. Nous avons un total de 15 lignes dans le tableau selon le résultat.

>> SÉLECTIONNER COUNT(*) À PARTIR des données.social;

Jetez un œil à la méthode COUNT(*) tout en définissant certaines conditions. Nous devons récupérer le nombre de lignes où le nom d'utilisateur est le même que 'Mustafa'. Vous pouvez voir que nous n'avons que 4 enregistrements pour ce nom particulier.

>> SÉLECTIONNER COUNT(*) À PARTIR des données.social O Utilisateur = 'Mustafa';

Pour récupérer la somme totale des lignes où le site Web des utilisateurs est « Instagram », essayez la requête ci-dessous. La table 'social' n'a que 4 enregistrements pour le site 'Instagram'.

>> SÉLECTIONNER COUNT(*) À PARTIR des données.social O Site Web = 'Instagram';

Pour récupérer le nombre total de lignes où 'Age' est supérieur à 18, procédez comme suit :

>> SÉLECTIONNER COUNT (*) À PARTIR des données.social O Âge > 18 ;

Récupérons les données des colonnes 'Utilisateur' et 'Site Web' d'une table, où le nom d'utilisateur commence par l'alphabet 'M'. Essayez les instructions ci-dessous sur le shell.

>> SÉLECTIONNER l'utilisateur, le site Web À PARTIR des données.social WHERE Utilisateur comme 'M%';

MySQL COUNT(expression)

Dans MySQL, la méthode COUNT(expression) n'est utilisée que lorsque vous souhaitez compter les valeurs non Null de la colonne 'expression'. L''expression' serait le nom de n'importe quelle colonne. Prenons un exemple simple. Nous n'avons compté que les valeurs non nulles d'une colonne 'Website', qui est liée à la colonne 'Age' ayant une valeur égale à '25'. Voir! Nous n'avons que 4 enregistrements non nuls pour les utilisateurs ayant l'âge de '25', qui utilisent des sites Web.

>> SÉLECTIONNER COUNT (Site Web) À PARTIR des données.social O Âge = 25 ;

MySQL COUNT (expression DISTNCT)

Dans MySQL, la méthode COUNT(DISTINCT expression) est utilisée pour additionner les valeurs non Null et les valeurs distinctes de la colonne 'expression'. Pour compter un nombre distinct de valeurs non nulles dans la colonne "Âge", nous avons utilisé la requête ci-dessous. Vous trouverez 6 enregistrements non nuls et distincts de la colonne 'Age' de la table 'social'. Cela signifie que nous avons un total de 6 personnes ayant des âges différents.

>> SÉLECTIONNER LE COMPTE (Âge DISTINCT) À PARTIR des données.social;

MySQL COUNT(SI(expression))

Pour une grande emphase, vous devez fusionner COUNT() avec des fonctions de contrôle de flux. Pour commencer, pour une partie de l'expression utilisée dans la méthode COUNT(), vous pouvez utiliser la fonction IF(). Il peut être très utile de le faire pour fournir une ventilation rapide des informations à l'intérieur d'une base de données. Nous compterons le nombre de lignes avec différentes conditions d'âge et les diviserons en trois colonnes différentes, qui peuvent être qualifiées de catégories. Tout d'abord, COUNT (IF) comptera les lignes ayant moins de 20 ans et enregistrera ce nombre dans une nouvelle colonne nommée " Teenage ". Le deuxième COUNT (IF) compte les lignes ayant un âge compris entre 20 et 30 ans tout en l'enregistrant dans une colonne « Jeune ». Troisièmement, le dernier compte les lignes ayant des âges supérieurs à 30 et enregistrées dans une colonne « Mature ». Nous avons 5 adolescents, 9 jeunes et seulement 1 personne mature dans notre dossier.

>> SÉLECTIONNER LE COMPTE(SI(Âge < 20,1,NULL)) 'Teenage', COUNT(IF(Age BETWEEN 20 AND  30,1,NULL)) 'Young', COUNT(IF(Age > 30,1,NULL)) 'Mature' FROM données.social;

MySQL COUNT (*) avec la clause GROUP BY

L'instruction GROUP BY est une instruction SQL utilisant pour les lignes de groupe avec les mêmes valeurs. Il renvoie le nombre total de valeurs résidant dans chaque groupe. Par exemple, si vous souhaitez vérifier le numéro de chaque utilisateur séparément, vous devez définir la colonne 'User' avec la clause GROUP BY tout en comptant les enregistrements pour chaque utilisateur avec COUNT(*).

>> SELECT Utilisateur, COUNT(*) FROM données.social  GROUP BY Utilisateur ;

Vous pouvez soit sélectionner plus de deux colonnes tout en effectuant le comptage de lignes avec la clause GROUP BY, comme suit.

>> SELECT Utilisateur, Âge, Site Web, COUNT(*) FROM données.social  GROUP BY Site Web ;

Si nous voulons compter les lignes tout en utilisant la clause WHERE contenant des conditions aux côtés de GROUP BY et COUNT (*), vous pouvez également le faire. La requête ci-dessous récupère et compte les enregistrements des colonnes : « Utilisateur », « Site Web » et « Âge » où la valeur du site Web est « Instagram » et « Snapchat » uniquement. Vous pouvez voir que nous n'avons qu'un seul enregistrement pour les deux sites Web pour différents utilisateurs.

>> SELECT Utilisateur, Site Web, Âge, COUNT(*) FROM données.social  O Site Web = 'Instagram' Ou Site Web = 'Snapchat' GROUP BY Site Web, Âge ;

MySQL COUNT (*) avec les clauses GROUP BY et ORDER BY

Essayons les clauses GROUP BY et ORDER BY conjointement avec la méthode COUNT(). Récupérons et comptons les lignes de la table 'social' tout en organisant les données par ordre décroissant à l'aide de cette requête :

>>  SÉLECTIONNER l'utilisateur, le site Web, l'âge, COUNT(*) FROM données.social  GROUP BY Age ORDER BY COUNT(*) DESC ;

La requête ci-dessous compte d'abord les lignes, puis affiche les seuls enregistrements ayant COUNT supérieur à 2 dans l'ordre croissant.

>> SELECT Utilisateur, Âge, COUNT(*) FROM données.social  GROUP BY Age HAVING COUNT(*) > 2 ORDER BY COUNT(*) ASC ;

Conclusion

Nous avons passé en revue toutes les méthodes possibles pour compter les enregistrements correspondants ou en double à l'aide de la méthode COUNT() avec différentes autres clauses.

Ports Open Source des moteurs de jeux commerciaux
Les récréations de moteur de jeu gratuites, open source et multiplateformes peuvent être utilisées pour jouer à d'anciens ainsi qu'à certains des titr...
Meilleurs jeux de ligne de commande pour Linux
La ligne de commande n'est pas seulement votre plus grand allié lorsque vous utilisez Linux, elle peut également être une source de divertissement car...
Meilleures applications de mappage de manette de jeu pour Linux
Si vous aimez jouer à des jeux sur Linux avec une manette de jeu au lieu d'un système de saisie clavier et souris typique, il existe des applications ...