2011-05-30 65 views
1
SELECT User, COUNT(User) as count FROM Tests GROUP by User; 

This works。但是,如果一些用戶的行包含空值,我得到以下幾點:空行不包含在查詢中

User count 
     0 
u1  5 
u2  3 
u3  9 

正如你所看到的,NULL值的行顯示0計數,但是,這不是真的爲零。

SELECT * FROM測試WHERE IsNull(用戶)顯示非零實際值。 這使得我應該改變我原來的查詢,所以空用戶將被正確計數。

回答

6

使用COUNT(*)代替:

SELECT User, COUNT(*) AS count 
    FROM Tests 
GROUP BY User; 

documentation

語法
計數(表達式)

COUNT函數不計算 記錄有空除非 expr是星號(*)通配符 字符。如果使用星號, 計算總計 記錄的總數,包括那些包含空字段的 記錄。 Count( * )相當於 快於Count([Column Name])