Как сделать запрос в 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'));

Но я не знаю как тут сделать исключение на записи новых пользователей и те ли цифры он выдает в принципе.


Ответы (0 шт):