Select Count (Distinct Value) gibt 1 zurück

Ich entwerfe eine Abfrage inSSMS 2005, das ungefähr so aussieht:

SELECT COUNT(DISTINCT ColumnName) FROM Table WHERE ColumnName IS NOT NULL

Wenn ich die Abfrage mit COUNT () ausführe, wird der Wert 1 zurückgegeben. Wenn ich sie ohne COUNT () ausführe, meldet SSMS den korrekten Wert, z. B. 212 Datensätze.

Die betreffende Spalte ist vom Datentyp numerisch (16, 0).

Für diejenigen, die fragen könnten, ist die vollständige Abfrage:

SELECT COUNT(DISTINCT O_ID) FROM vEmployers
INNER JOIN vEnrolment ON O_ID = E_EnrolmentEmployer
WHERE E_START >= '01-AUG-2008' AND E_START < '01-AUG-2009'
AND O_ID IS NOT NULL AND O_ID IN (
    SELECT O_ID FROM vEmployers
    INNER JOIN vEnrolment ON O_ID = E_EnrolmentEmployer
    WHERE E_Start < '01-AUG-2008' and E_Start >= '01-AUG-2007'
)

Diese Abfrage gibt im Wesentlichen eine Wiederholungszahl zwischen zwei 12-monatigen Perioden an.

Ich frage mich also, warum "COUNT (DISTINCT ColumnName)" 1 zurückgibt, wenn "ColumnName IS NOT NULL" angegeben wurde.

Hier ist ein Beispiel der Daten, wenn SELECT TOP 10 DISTINCT ColumnName FROM ... etc ausgeführt wird:

1346116
1346131
1346425
1346923
1349935
1350115
1350153
2594787
2821944
2879631

Antworten auf die Frage(5)

Ihre Antwort auf die Frage