COUNT场
问题描述:
如果我有这样一个表作为COUNT场
Name Email
Sam [email protected]
Fred [email protected]
Ben Null
Tom Null
,我想指望有多少人没有电子邮件
,所以我想
SELECT
Name,
Email,
CASE WHEN Email IS NULL
THEN COUNT(Email) ELSE 0 END AS [Count]
FROM Table1
Group by Name,Email
但我得到的结果是
Name Email Count
Sam [email protected] 0
Fred [email protected] 0
Ben Null 0
Tom Null 0
答
select count(name) from Table1 where email is null
,或者如果你需要统计不同的名称数:
select count(distinct name) from Table1 where email is null
答
用于计算有多少人没有电子邮件,你不需要group by
条款 - 你只是想获得一个单个回答:
SELECT COUNT(*)
FROM table1
WHERE email IS NULL
答
COUNT()
会忽略NULL
字段。你的问题中的措辞也表明你只需要所有没有电子邮件的人的总数,所以GROUP BY
似乎不是必要的。
也许这是你在找什么:
Select Count(*)
From Table1
Where Email Is Null;
答
SELECT
count(name)
FROM Table1
where email is null
答
如果你想要的是具有1或0时没有电子邮件字段,你靠近。
SELECT Name, Email, NoEmail = CASE WHEN Email IS NULL OR Email = '' THEN 1 ELSE 0 END
FROM Table1;
或者只是计算WHEN电子邮件的数量为NULL。
SELECT COUNT(*)
FROM Table1
WHERE Email IS NULL;
我不认为这回答了这个问题。 – Spongman