Maison >base de données >tutoriel mysql >COUNT(column) vs. COUNT(*) : quand dois-je utiliser lequel en SQL ?

COUNT(column) vs. COUNT(*) : quand dois-je utiliser lequel en SQL ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-13 15:01:44510parcourir

COUNT(column) vs. COUNT(*): When Should I Use Which in SQL?

*Explication détaillée de la différence entre COUNT(column) et COUNT() en SQL**

Dans les requêtes SQL, la fonction count() est utilisée pour l'agrégation de données, mais il existe une différence subtile mais importante entre les deux formes couramment utilisées count(column) et count(*).

COUNT(colonne) : exclure les valeurs NULL

La syntaxe

count(column) compte le nombre de valeurs non NULL dans la colonne spécifiée, ignorant efficacement les lignes avec des valeurs de colonne NULL. Cette fonctionnalité est utile lorsque vous devez déterminer le nombre de valeurs non nulles dans une colonne.

*COUNT() : contient une valeur NULL**

En revanche, count(*) compte le nombre de lignes dans le jeu de résultats, y compris les lignes contenant des valeurs NULL. Contrairement à count(column), il traite NULL comme un élément de comptage valide. Cette fonctionnalité est utile lorsque vous devez obtenir le nombre total de lignes, qu'une colonne spécifique contienne ou non des données manquantes.

Exemple illustrant la différence

Considérons une table nommée #bla contenant les enregistrements suivants :

<code class="language-sql">create table #bla(id int,id2 int)
insert #bla values(null,null)
insert #bla values(1,null)
insert #bla values(null,1)
insert #bla values(1,null)
insert #bla values(null,1)
insert #bla values(1,null)
insert #bla values(null,null)</code>

Utilisez count(column) pour exécuter la requête suivante :

<code class="language-sql">select count(id),count(id2)
from #bla</code>

Le résultat est :

<code>3   2</code>

Parmi eux, count(id) ne compte que trois valeurs non NULL dans la colonne id, tandis que count(id2) compte deux valeurs non NULL dans la colonne id2.

Cependant, remplacer count(*) par count(column) donne 7, comme indiqué dans la requête suivante :

<code class="language-sql">select count(*)
from #bla</code>

Dans ce cas, count(*) contient sept lignes du tableau, qu'elles contiennent ou non des valeurs NULL. Cette distinction entre le comptage des valeurs non NULL et le comptage des lignes devient particulièrement importante lorsqu'il s'agit d'ensembles de données contenant des données manquantes.

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!

Déclaration:
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