Как сделать запрос в MySQL для подсчета возвращаемости клиентов?
Имеется две таблицы: Первая
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
Вторая
CREATE TABLE `window` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`master_id` int(11) NOT NULL,
`user_id` int(11) DEFAULT NULL,
`date` datetime NOT NULL,
`status` tinyint(3) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=218 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
Мне нужно посчитать возвращаемость клиентов на текущий месяц в сравнении с предыдущим месяцем. Формула примерно следующая (ИМХО): (∑(Кол-во записей user_id в пред месяц)/∑(Кол-во записей user_id в текущий месяц)). Вполне возможно формулу можно упростить до (∑(Кол-во записей в пред месяц)/∑(Кол-во записей в текущий месяц КРОМЕ записей новых пользователей)).
На данный момент я написал примерно следующее:
SELECT (SELECT count(*) FROM `window`
WHERE date>=DATE_FORMAT(LAST_DAY(NOW() - INTERVAL 1 MONTH), '%Y-%m-%d 23:59:59'))/
(SELECT count(*) FROM `window`
WHERE date<=DATE_FORMAT(LAST_DAY(NOW() - INTERVAL 1 MONTH), '%Y-%m-%d 23:59:59')
AND date>=DATE_FORMAT(LAST_DAY(NOW() - INTERVAL 2 MONTH), '%Y-%m-%d 23:59:59'));
Но я не знаю как тут сделать исключение на записи новых пользователей и те ли цифры он выдает в принципе.