mysql count count distinct with examples
Découvrez les utilisations des différentes formes de la fonction MySQL COUNT avec des exemples:
COUNT est une fonction d'agrégation simple, mais très efficace et largement utilisée. En termes très simples, il sert à COUNT le nombre de lignes par rapport à une requête SELECT et à des critères donnés.
Ce tutoriel expliquera la syntaxe et l'utilisation de COUNT simple, COUNT avec conditions, COUNT avec DISTINCT, COUNT avec GROUP BY, etc.
Ce que vous apprendrez:
Différents types de MySQL COUNT
Taper | Description | Syntaxe |
---|---|---|
COMPTER(*) | La fonction COUNT (*) renvoie le no. de lignes récupérées par l'instruction SELECT, y compris les lignes contenant des valeurs NULL et Duplicate | SELECT COUNT (*) FROM {tableName} |
COUNT (expression) | COUNT (expression) compterait la valeur où l'expression n'est pas nulle. L'expression peut être quelque chose de simple comme un nom de colonne ou une expression complexe telle que IF Function. | SELECT COUNT (Expression) de {tableName} |
COUNT (expression DISTINCT) | COUNT (DISTINCT expression) - Le mot clé DISTINCT entraînerait le comptage uniquement des valeurs non nulles uniques par rapport à l'expression. Par exemple - COUNT (DISTINCT customerName) - ne compterait que les lignes ayant des valeurs distinctes pour le nom du client | SELECT COUNT (DISTINCT expression) de {tableName} |
Exemples de COUNT MySQL
Données de test
Nous utiliserions les tableaux et données suivants pour les exemples de la fonction MySQL COUNT.
Les tables:
# 1) Détails du produit
Stocke les détails de divers produits dans un magasin
- product_id - INT
- nom_produit - VARCHAR
- prix - DECIMAL
- category_id - INT (FOREIGN KEY - id de la table Category_Details)
# 2) Category_Details:
- category_id: INT
- nom_catégorie: VARCHAR
Créons les tables et insérons des données factices à l'aide des requêtes ci-dessous:
CREATE TABLE `product_details` ( `product_id` int NOT NULL, `product_name` varchar(100), `price` decimal(5,2), `category_id` int, FOREIGN KEY (category_id) REFERENCES category_details(category_id), PRIMARY KEY(product_id) ) CREATE TABLE `category_details` ( `category_id` int NOT NULL, `category_name` varchar(100), PRIMARY KEY(category_id) ) INSERT INTO `category_details` (`category_id`,`category_name`) VALUES (1,'FMCG'),(2,'FURNITURE'),(3,'FASHION'),(4,'APPLIANCES'),(5,'ELECTRONICS'); INSERT INTO `product_details` (`product_id`,`product_name`,`price`,`category_id`) VALUES (1,'Biscuits',0.5,1),(2,'Chocolates',1,1), (3, 'Washing Powder',5,1),(4, 'Apple IPhone', 500,5), (5, 'Batteries',2,5),(6,'Floor cleaner',2.5,1),(7,'Jeans- Levis',100,1),(8,'Mixer grinder',50,4),(9,'Capsicum',2,1),(10,'Sugar',1,1),(11,'Study Table',50,2);
Veuillez vous référer aux images des tableaux avec les données de test créées ci-dessus.
Table Product_Details
Table Category_Details
COUNT simple
Dans cette section, nous verrons la fonction COUNT de la manière la plus simple.
Nous utiliserons COUNT pour renvoyer le nombre de lignes sans aucun contrôle NULL ou DISTINCT.
SELECT COUNT(*) FROM product_details;
Production:
COMPTER(*) |
---|
Onze |
Avec la requête ci-dessus, nous obtiendrons simplement le nombre de lignes renvoyées par rapport à l'instruction select.
COUNT avec conditions
Nous allons maintenant utiliser la fonction COUNT avec des conditions ou des valeurs de colonne.
Exemple: Supposons que nous voulions compter le non. de lignes où il n'y a pas de valeurs non nulles pour les noms de produits.
Nous pouvons ajouter product_name (ou n'importe quel nom de colonne donné) comme expression dans la fonction COUNT, ce qui donnerait alors un nombre de lignes ayant des lignes de product_name NON NULL.
SELECT COUNT(product_name) FROM product_details;
Dans ce cas, la sortie sera 11 (car toutes les données de test ont déjà des valeurs pour la colonne product_name)
Production:
COUNT (nom_produit) |
---|
Onze |
Ajoutons une nouvelle ligne, avec une valeur NULL pour product_name.
INSERT INTO `product_details` (`product_id`,`product_name`,`price`,`category_id`) VALUES (12,NULL,0.5,1);
SELECT COUNT(product_name) from product_details;
La requête COUNT ci-dessus renverra le nombre de toutes les lignes ayant un nom_produit NON NULL.
Puisque nous avons inséré une ligne avec NULL product_name, cela ne serait pas renvoyé dans les résultats. Ainsi, la sortie serait toujours de 11 lignes.
Production:
COUNT (nom_produit) |
---|
Onze |
COUNT avec DISTINCT
Dans les exemples précédents, nous avons utilisé la fonction COUNT avec une expression. Nous pouvons également combiner l'expression avec une commande DISTINCT pour obtenir toutes les valeurs NON NULL, qui sont également UNIQUE.
Essayons d'obtenir le DISTINCT category_id à partir de la table product_details.
SELECT COUNT(DISTINCT category_id) from product_details;
Production:
COUNT (DISTINCT category_id) |
---|
4 |
Comme vous pouvez le voir ci-dessus - la sortie est 4, ce qui représente le total non. de category_id dans la table product_details.
COUNT avec GROUP BY
Prenons un exemple où nous voulons utiliser COUNT avec GROUP BY. Il s'agit d'une combinaison importante dans laquelle nous pouvons obtenir un COUNT par rapport à une colonne groupée et analyser les données en fonction des différentes valeurs d'une colonne groupée cible.
Par exemple: Trouvez le non. de produits par rapport à chaque catégorie de la table product_details.
SELECT category_id, COUNT(*) FROM product_details GROUP BY category_id;
category_id | COMPTER(*) |
---|---|
1 | 7 |
deux | 1 |
4 | 1 |
5 | deux |
Comme nous pouvons le voir ci-dessus, pour chaque category_id, la colonne COUNT (*) représente le nombre de lignes appartenant à chaque category_id.
COUNT avec IF
Voyons un exemple d'utilisation d'une condition IF dans la fonction COUNT. Nous pouvons placer une expression IF dans la fonction COUNT et définir la valeur sur NULL pour la condition fausse et sur toute valeur non nulle pour la condition vraie.
Chaque valeur NON NULL serait comptée comme une seule ligne avec la fonction COUNT.
Par exemple: Utilisez la fonction COUNT pour trouver tous les produits dans la fourchette de prix de 20 $.
SELECT COUNT(IF(price >0 AND price<20, 1, NULL)) AS count_less_than_20 FROM product_details;
Production:
count_less_than_20 |
---|
7 |
Dans la requête ci-dessus, nous avons obtenu le COUNT de tous les produits dont la fourchette de prix est comprise entre 0 et 20. Pour la condition FALSE, nous avons défini la valeur sur NULL, qui n'est pas comptée, lorsque la ligne est évaluée pour différentes valeurs de colonne .
COUNT avec JOINS
COUNT peut également être utilisé avec les instructions JOIN. Puisque COUNT s'applique à non. de lignes, il peut être utilisé avec n'importe quelle combinaison d'une requête opérant sur une seule table ou plusieurs tables à l'aide de JOINS.
Exemple: Joignez les tables product_details et category_details et recherchez le nombre par nom_catégorie dans la table product_details.
SELECT category_name, COUNT(category_name) from product_details pd INNER JOIN category_details cd ON cd.category_id = pd.category_id GROUP BY category_name;
Production:
Nom de catégorie | COUNT (nom_catégorie) |
---|---|
FMCG | 7 |
MEUBLES | 1 |
APPAREILS ÉLECTROMÉNAGERS | 1 |
ÉLECTRONIQUE | deux |
Truc et astuce
Utilisation de l'alias de colonne pour la colonne qui affiche le résultat de la fonction COUNT: Nous pouvons utiliser un alias de colonne avec la fonction COUNT pour avoir des noms de colonne définis par l'utilisateur pour la colonne affichant les résultats de la fonction COUNT.
Par exemple: Supposons que nous voulions compter le nombre de catégories dans la table category_details et nommer la colonne résultante comme category_count, nous pouvons utiliser la requête ci-dessous:
SELECT COUNT(*) as category_count from category_details;
Production:
category_count |
---|
5 |
Questions fréquemment posées
Q # 1) Comment utiliser la fonction COUNT dans MySQL?
entretien de réseautage question et réponse pdf
Répondre: La fonction COUNT est une fonction d'agrégation qui peut être utilisée de 3 manières.
- COMPTER(*) - Cela compterait toutes les lignes renvoyées par SELECT QUERY.
- COUNT (expression) - Cela compterait toutes les valeurs NON NULL pour l'expression.
- COUNT (expression DISTINCT) - Cela compterait toutes les valeurs NON NULL et UNIQUE par rapport à l'expression.
Q # 2) Quelle est la différence entre Count (*) et Count (1) en SQL?
Répondre: Les deux instructions se comportent de manière identique. D'après la définition de COUNT de MySQL, tout ce qui est entre parenthèses () est une expression - et toute valeur NON NULL serait comptée pour 1.
Donc, dans ce cas, * et 1 sont traités comme NON NULL et le même résultat est renvoyé, c'est-à-dire que le résultat des deux requêtes ci-dessous serait le même.
SELECT COUNT(*) from product_details; SELECT COUNT(1) from product_details;
Conclusion
Dans ce tutoriel, nous avons découvert la fonction COUNT et les différentes variantes fournies par MySQL.
Nous avons également vu comment nous pouvons utiliser COUNT avec différents scénarios, comme combiner COUNT avec GROUP BY et écrire une fonction IF dans la fonction COUNT.
La fonction COUNT est l'une des fonctions les plus importantes et les plus largement utilisées dans MySQL et est largement utilisée pour agréger des données en fonction des conditions spécifiées pour une ou plusieurs tables.
lecture recommandée
- MySQL ALTER TABLE - Comment ajouter une colonne à une table dans MySQL
- Fonctions MySQL CONCAT et GROUP_CONCAT avec exemples
- MySQL CREATE USER: Comment créer un nouvel utilisateur dans MySQL
- Tutoriel MySQL JOIN: intérieur, extérieur, croix, gauche, droite et soi
- MySQL LIKE - Tutoriel avec syntaxe et exemples d'utilisation
- Clause MySQL GROUP BY - Tutoriel avec des exemples
- Fonctions MySQL Substring et Substring_Index avec exemples
- Tutoriel MySQL Create View avec des exemples de code