Heim >Datenbank >MySQL-Tutorial >COUNT(*) vs. COUNT(Spalte): Was ist der Unterschied bei der SQL-Zeilenzählung?

COUNT(*) vs. COUNT(Spalte): Was ist der Unterschied bei der SQL-Zeilenzählung?

Susan Sarandon
Susan SarandonOriginal
2025-01-13 15:11:43780Durchsuche

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

*Der Unterschied zwischen COUNT() und COUNT(Spalte) in SQL**

In SQL stellen die Aggregatfunktionen COUNT(*) und COUNT(column) unterschiedliche Mechanismen zum Zählen von Datenzeilen bzw. -spalten in einer Tabelle bereit.

COUNT() Zählt alle Zeilen in der angegebenen Tabelle, mit Ausnahme von NULL-Werten. Das bedeutet, dass COUNT() die Gesamtzahl der Nicht-NULL-Zeilen zurückgibt, unabhängig davon, welche Spalten Daten enthalten.

Andererseits zählt COUNT(column) die Anzahl der Zeilen, in denen die angegebene Spalte nicht NULL ist. Dies ermöglicht das selektive Zählen von Nicht-NULL-Werten in bestimmten Spalten.

*Ersetzen Sie COUNT(Spalte)** durch COUNT(

)

Das Ersetzen aller Instanzen von COUNT(Spaltenname) in der Abfrage durch COUNT(*) hat die folgenden Auswirkungen:

  • Die Ergebnismenge enthält eine zusätzliche Zeile mit dem NULL-Wert für Spaltenname und einer Anzahl, die die Anzahl der NULL-Werte in der Spalte darstellt.

Demo

Um diesen Unterschied zu veranschaulichen, reproduzieren wir das in der ursprünglichen Frage beschriebene Szenario:

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

Ergebnis:

<code>7   3   2</code>

In diesem Beispiel zählt die Spalte COUNT(*) alle sieben Zeilen, einschließlich der beiden Zeilen, in denen sowohl id als auch id2 NULL sind. Die Spalte COUNT(id) zählt nur drei Zeilen, in denen id nicht NULL ist, während COUNT(id2) zwei Zeilen zählt, in denen id2 nicht NULL ist.

Das obige ist der detaillierte Inhalt vonCOUNT(*) vs. COUNT(Spalte): Was ist der Unterschied bei der SQL-Zeilenzählung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn