COUNT()不适用于GROUP BY?

the*_*cat 0 sql sqlite group-by count

SELECT COUNT(*) FROM table GROUP BY column
Run Code Online (Sandbox Code Playgroud)

我得到表中的总行数,而不是GROUP BY后的行数.为什么?

Gor*_*off 6

因为那是group by有效的.它为源数据中每个标识的行返回一行.在这种情况下,它将为每个组提供计数.

得到你想要的:

select count(distinct column)
from table;
Run Code Online (Sandbox Code Playgroud)

编辑:

稍微注意一下,如果column可以NULL,那么真正的等价物是:

select (count(distinct column) +
        max(case when column is null then 1 else 0 end)
       )
from table;
Run Code Online (Sandbox Code Playgroud)