I am developing a query in SSMS 2005 that looks something like this:
SELECT COUNT(DISTINCT ColumnName) FROM Table WHERE ColumnName IS NOT NULL
When I run a query using COUNT (), it returns the value 1. When I run it without COUNT (), SSMS reports the correct value, for example, 212 entries.
This column refers to the data type (16, 0).
For those who may ask, full request:
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' )
This query basically provides a recurring business metric between two 12-month periods.
So, I wonder why “COUNT (DISTINCT ColumnName)” returns 1 when “ColumnName IS NOT NULL” is indicated?
Here is sample data when SELECT TOP 10 DISTINCT ColumnName FROM ... is executed, etc.
1346116 1346131 1346425 1346923 1349935 1350115 1350153 2594787 2821944 2879631
sql sql-server count distinct
Gatekiller
source share