2009-03-17 18 views
9

Die Funktion count() zählt Zeilen und wird sehr oft als count(*) verwendet. Wenn ich eine Tabelle mit phoneNo und firstName hatte, gibt count(phoneNumber) die gleiche Nummer wie count(*) zurück. Alle Spalten sind in jeder Zeile immer vorhanden, wenn sie nicht ausgefüllt sind.Warum benötigt die Funktion count() einen Parameter?

+0

versuchen, mit UNIQUE –

Antwort

20

Es gibt einen feinen Unterschied.

Wenn Sie ein Feld angeben, zählen Anzahl (Feldname) Datensätze, die nicht null Werte für das Feld haben. count (*) gibt dir insgesamt Zeilen.

4

Siehe MSDN

Count (PHONENO) wird die Anzahl der Datensätze zurück, wo PHONENO nicht null ist. Count (*) gibt die Anzahl oder Zeilen unabhängig zurück.

+0

+1: Zitieren Sie die Dokumentation. –

2

COUNT(*) zählt jede Zeile. COUNT(yourColumn) enthält keine Zeilen, in denen yourColumnNULL ist.

Zum Beispiel, wenn es 20 Zeilen in Ihrer Tabelle sind und die phoneNumber Spalte ist NULL in 5 dieser Zeilen, dann COUNT(*) zurückkehren 20 während COUNT(phoneNumber) 15.

7

Auf der anderen Seite zurückkehren können Sie verschiedene zählen Werte. count (distinct firstName) kann ein anderes Ergebnis als count (distinct phoneNumber) liefern und beide können sich von count() unterscheiden.

Verwandte Themen