Maison >base de données >tutoriel mysql >COUNT(*) vs. COUNT(Column) : quelle est la différence dans le comptage de lignes SQL ?

COUNT(*) vs. COUNT(Column) : quelle est la différence dans le comptage de lignes SQL ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-13 15:11:43771parcourir

COUNT(*) vs. COUNT(Column): What's the Difference in SQL Row Counting?

*La différence entre COUNT() et COUNT(Column) en SQL**

En SQL, les fonctions d'agrégation COUNT(*) et COUNT(column) fournissent respectivement différents mécanismes pour compter les lignes et les colonnes de données dans une table.

COUNT() Compte toutes les lignes du tableau spécifié, à l'exclusion des valeurs NULL. Cela signifie que COUNT() renvoie le nombre total de lignes non NULL, quelles que soient les colonnes contenant des données.

D'un autre côté, COUNT(column) compte le nombre de lignes dans lesquelles la colonne spécifiée n'est pas NULL. Cela permet un comptage sélectif des valeurs non NULL dans des colonnes spécifiques.

*Remplacez COUNT(column)** par COUNT(

)

Le remplacement de toutes les instances de COUNT(column_name) dans la requête par COUNT(*) aura les effets suivants :

  • L'ensemble de résultats contiendra une ligne supplémentaire contenant la valeur NULL pour nom_colonne et un nombre représentant le nombre de valeurs NULL dans la colonne.

Démo

Pour illustrer cette différence, reproduisons le scénario décrit dans la question originale :

<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)

select count(*),count(id),count(id2)
from #bla</code>

Résultat :

<code>7   3   2</code>

Dans cet exemple, la colonne COUNT(*) compte les sept lignes, y compris les deux lignes où id et id2 sont NULL. La colonne COUNT(id) ne compte que trois lignes où id n'est pas NULL, tandis que COUNT(id2) compte deux lignes où id2 n'est pas 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!

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