在获取唯一记录总数和按日期分组方面有点困难。最终的结果是,我每天得到的总数,但它不是使用独特的电子邮件基于独特的功能。这是我的问题。。。
SELECT count(distinct(emailaddress)), DATE(EntryDate)
FROM tblentries
group by DATE(EntryDate)
ORDER BY DATE(EntryDate) desc
结果并没有消除每天的计数重复。思想?
谢谢!
最佳答案
根据对话,我相信你要找的是每天从未见过的不同电子邮件地址的数量:
SELECT
DATE(t.EntryDate) as RecordDate,
COUNT(DISTINCT t.emailaddress) as NewEmailAddresses
FROM
tblentries t
WHERE
NOT EXISTS(
SELECT 1
FROM tblentries t2
WHERE
t2.emailaddress = t.emailaddress
AND DATE(t2.EntryDate) < DATE(t.EntryDate)
)
GROUP BY
DATE(t.EntryDate)
ORDER BY
DATE(t.EntryDate) ASC;
这是在我的头顶上,所以它可能是不对的,它将是缓慢的,但我认为这是在正确的方向。另一方面,如果您计划定期运行此程序,那么在emailaddress上建立索引将是一个好主意。
让我知道这是否有效。
关于mysql - MySQL计数(区别(电子邮件)和按日期排序(输入日期),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7071928/