在获取唯一记录总数和按日期分组方面有点困难。最终的结果是,我每天得到的总数,但它不是使用独特的电子邮件基于独特的功能。这是我的问题。。。

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/

10-11 02:51