2014-05-16 117 views
0
SELECT COUNT(*) FROM table GROUP BY column 

我得到表中的行總數,而不是GROUP BY後的行數。爲什麼?COUNT()不適用於GROUP BY?

+0

適合我。什麼是實際查詢? –

+0

@CL。它是否適合你使用sqlite? –

+0

顯然我誤解了描述。 –

回答

6

因爲這就是group by的工作原理。它爲源數據中每個標識的行組返回一行。在這種情況下,它會給出每個組的計數。

爲了得到你想要的東西:

select count(distinct column) 
from table; 

編輯:

作爲一個稍微注意,如果column可以NULL,那麼真正的等價物是:

select (count(distinct column) + 
     max(case when column is null then 1 else 0 end) 
     ) 
from table; 
2

試試這個:

SELECT COUNT(*), column 
FROM table 
GROUP BY column