MySQL计数(不同(电子邮件)和按日期分组(entrydate)

时间:2011-08-15 23:21:27

标签: mysql count group-by distinct

在获取总计唯一记录和按日期分组方面遇到一些麻烦。最终结果是我每天获得总计,但它没有使用基于不同功能的唯一电子邮件。这是我的询问......

SELECT count(distinct(emailaddress)), DATE(EntryDate)
FROM tblentries
group by   DATE(EntryDate)
ORDER BY DATE(EntryDate) desc

结果最终不会减少每天的计数。想法?

谢谢!

1 个答案:

答案 0 :(得分:2)

根据对话,我相信您所寻找的是每天前所未有的电子邮件地址数量:

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的索引将是一个好主意。

让我知道这是否有效。