我在表格中为抽奖活动收集了一些条目。我被客户要求提供:
我能够确定唯一条目的数量,但不确定如何提取特定次数的条目数。我试过这样的事情:
SELECT email,count(email)AS NumberOfEntries
FROM条目
GROUP BY NumberOfEntries
这给出了错误:无法对'NumberOfEntries'进行分组
我希望看到这样的事情:
NumberOfEntries /总计
1 / 1,000(意思是1000人进入一次,只有一次)
2 / 1,300(意思是1,300人正好两次输入)
感谢您的帮助!
答案 0 :(得分:5)
尝试:
SELECT numberOfEntries, count(*) FROM (
SELECT email, count(*) AS numberOfEntries
FROM entries
GROUP BY email
)
GROUP BY numberOfEntries
您可以在内部选择中添加HAVING
子句,以限制返回1,2,3或其他任何条目的条目数。
答案 1 :(得分:4)
这个怎么样:
SELECT email, count(email) as NumberOfEntries
FROM entries
GROUP BY email
将为您提供电子邮件列表和条目数(GROUP BY应列出所有非聚合列)。如果要将选择限制为仅包含2或3个条目的电子邮件,则需要使用having子句。
SELECT email, count(email) as NumberOfEntries
FROM entries
GROUP BY email
HAVING NumberOfEntries = 2
或者,要计算每个条目的数量,您可以将其包装在另一个查询中,如:
SELECT NumberOfEntries, COUNT(*) AS NumberOfEmails
FROM (SELECT email, count(email) as NumberOfEntries
FROM entries
GROUP BY email) AS x
GROUP BY NumberOfEntries
ORDER BY NumberOfEntries ASC
这应该为您提供条目数,以及有多少人拥有该条目数(从1个条目列出)