Мне нужно сосчитать все строки в таблице MySQL, опуская записи с одинаковыми столбцами agent
и msisnd
и датами ближе 5 минут друг к другу.Например,
id type agent msisdn date
2706 jurnal EC_Catalin.Silvan 745844472 2011-02-18 18:31:54
63535 item EC_Adelina.Gartan 766699747 2011-02-22 18:42:15
56513 item EC_Adelina.Gartan 766733667 2011-02-24 17:13:31
56372 item EC_Adelina.Gartan 766733667 2011-02-24 17:12:01
Запрос должен вернуть COUNT = 3, поскольку строки с идентификаторами 56513 и 56372 имеют близкие даты друг к другу.
Пока у меня есть этот запрос, и онне работает
SELECT `calls_count_pre`.*
FROM `calls_count_pre`
LEFT JOIN `calls_count_pre` AS `temp` ON (`calls_count_pre`.`id` = `temp`.`id`)
WHERE
(MINUTE(TIMEDIFF(`calls_count_pre`.`date`, `temp`.`date`)) <= 5 AND HOUR(TIMEDIFF(`calls_count_pre`.`date`, `temp`.`date`)) = 0)
AND `calls_count_pre`.`msisdn` = `temp`.`msisdn`
AND `calls_count_pre`.`agent` = `temp`.`agent`
ORDER BY `calls_count_pre`.`agent`, `calls_count_pre`.`msisdn`, `calls_count_pre`.`date` DESC
Он просто возвращает все записи.Я знаю, что не выбираю COUNT, но даже SELECT *
будет началом в этот момент.
Заранее спасибо.