Maison > base de données > tutoriel mysql > COUNT(column) vs. COUNT(*) : quand devez-vous utiliser chaque fonction de comptage SQL ?

COUNT(column) vs. COUNT(*) : quand devez-vous utiliser chaque fonction de comptage SQL ?

DDD
Libérer: 2025-01-13 15:07:43
original
440 Les gens l'ont consulté

COUNT(column) vs. COUNT(*): When Should You Use Each SQL Count Function?

*Fonction de comptage SQL : Différences et scénarios d'application entre COUNT(column) et COUNT()**

Dans les bases de données SQL, les opérations de comptage sont des fonctions basiques et couramment utilisées. Cependant, le choix de COUNT(column) et COUNT(*) affectera directement les résultats. Cet article plongera dans les principales différences entre ces deux fonctions de comptage.

COUNT(column)La fonction compte le nombre de valeurs non NULL dans la colonne spécifiée. Si une ligne contient une valeur NULL dans cette colonne, la ligne sera exclue du décompte. Cette fonctionnalité est utile lors du comptage de valeurs uniques ou de points de données spécifiques.

D'autre part, la fonction COUNT(*) compte le nombre total de lignes dans le regroupement sélectionné, que la colonne contienne ou non des valeurs NULL. Il compte à la fois les valeurs non NULL et les valeurs NULL.

Cette différence devient apparente lorsqu'il s'agit de tables contenant des valeurs NULL. Par exemple, considérons la requête suivante :

<code class="language-sql">SELECT column_name, COUNT(column_name)
FROM table
GROUP BY column_name
HAVING COUNT(column_name) > 1;</code>
Copier après la connexion

Cette requête récupère les groupes de lignes où la valeur de column_name apparaît plus d'une fois. Cependant, si nous remplaçons COUNT(column_name) par COUNT(*), nous rencontrons des problèmes potentiels.

Avec COUNT(*), la requête comptera toutes les lignes de chaque groupe, y compris celles contenant des valeurs NULL dans column_name. Cela peut entraîner une ligne supplémentaire dans la sortie contenant les valeurs NULL et leur nombre de valeurs NULL.

Pour illustrer cela, considérons un tableau contenant les données suivantes :

id id2
NULL NULL
1 NULL
NULL 1
1 NULL
NULL 1
1 NULL
NULL NULL

La requête suivante utilisant COUNT(id) renverra les résultats corrects :

<code class="language-sql">SELECT id, COUNT(id)
FROM table
GROUP BY id
HAVING COUNT(id) > 1;</code>
Copier après la connexion

Sortie :

id COUNT(id)
1 3

Cependant, si nous utilisons COUNT(*) nous obtiendrons des lignes supplémentaires :

<code class="language-sql">SELECT id, COUNT(*)
FROM table
GROUP BY id
HAVING COUNT(*) > 1;</code>
Copier après la connexion

Sortie :

id COUNT(*)
1 3
NULL 2

Comme indiqué ci-dessus, le résultat utilisant COUNT(*) contient une ligne supplémentaire où id est NULL et un nombre de 2, indiquant le nombre de lignes contenant des valeurs NULL id.

Par conséquent, le choix de COUNT(column) et COUNT(*) dépend des données spécifiques et des résultats souhaités. COUNT(column) est plus approprié pour compter les valeurs non NULL, tandis que COUNT(*) est utilisé pour compter toutes les lignes, y compris celles contenant des valeurs NULL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal