如果我有一个表格,如
Name Email
Sam s@hot.com
Fred f@hot.com
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 s@hot.com 0
Fred f@hot.com 0
Ben Null 0
Tom Null 0
答案 0 :(得分:1)
select count(name) from Table1 where email is null
或者如果您需要计算不同名称的数量:
select count(distinct name) from Table1 where email is null
答案 1 :(得分:1)
为了计算有多少人没有收到电子邮件,您不需要group by
条款 - 您只是想获得一个答案:
SELECT COUNT(*)
FROM table1
WHERE email IS NULL
答案 2 :(得分:1)
COUNT()
会忽略NULL
个字段。您的问题中的措辞也表明您只想要没有电子邮件的所有人的总数,因此GROUP BY
似乎没有必要。
也许这就是你要找的东西:
Select Count(*)
From Table1
Where Email Is Null;
答案 3 :(得分:1)
如果您想要的是没有电子邮件时具有1或0的字段,则表示您已关闭。
SELECT Name, Email, NoEmail = CASE WHEN Email IS NULL OR Email = '' THEN 1 ELSE 0 END
FROM Table1;
或者只计算WHEN Email IS NULL的数量。
SELECT COUNT(*)
FROM Table1
WHERE Email IS NULL;
答案 4 :(得分:0)
SELECT
count(name)
FROM Table1
where email is null