Количество MySQL (разные (электронная почта) и Group By DATE (entrydate) - PullRequest
1 голос
/ 16 августа 2011

Возникли проблемы с получением уникальных записей и группировкой по дате.В результате я получаю итоги за день, но не использую уникальные электронные письма, основанные на отдельной функции.Вот мой запрос ...

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

В итоге результаты не будут лишать счет за каждый день.Мысли?

Спасибо!

1 Ответ

2 голосов
/ 16 августа 2011

Исходя из разговора, я полагаю, что вы ищете количество отдельных никогда ранее не замечаемых адресов электронной почты в день:

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;

Это от макушки моей головы, так что это может быть не правильно, и это будет медленно, но я думаю, что это в правильном направлении. Кроме того, если вы планируете запускать это регулярно, было бы неплохо индексировать адрес электронной почты.

Дайте мне знать, если это работает.

...