使用COUNT(DISTINCT fieldA)时,它是否排除计算将在fieldA中的NULL值
答案 0 :(得分:1)
count(distinct your_column_name)
仅计算your_column_name中值与null
不同的行count(*)
在某些列中使用或不使用null计算表中的所有行
答案 1 :(得分:1)
是的,它会忽略ToListAsync
。如果您想包含NULL
,那么这是一种安全的方式:
NULL
答案 2 :(得分:0)
你的标题和叙述之间有2个问题。
DISTINCT不会消除(排除)空值
然而
聚合函数IGNORE空值
正如其他人提到的那样,如果你想要计算所有NON NULL DISTINCT值,请使用你提到的代码。
SELECT COUNT(DISTINCT columnName)
如果要将所有空值计算为另一个值,则可以使用2种方法之一。
1)使用COALESCE()消除null,其值不在数据集中。 E.g。
SELECT COUNT(DISTINCT COALESCE(columnName,'|||||||||'))
2)使用条件聚合更加确定的方式类似于戈登所展示的:
显示不同的消除空值:
CREATE TABLE DistinctTest (Col INT)
INSERT INTO DistinctTest (Col) VALUES (NULL),(1),(2),(3),(NULL)
SELECT DISTINCT *
FROM
DistinctTest