Может ли кто-нибудь объяснить несоответствие между следующими запросами:
Запрос 1 (возвращает 87 результатов):
SELECT userId, COUNT(userId) as usercount
FROM `cpnc_PaymentOrder`
WHERE created >= UNIX_TIMESTAMP('2011-03-01')
GROUP BY userId
HAVING usercount > 1
Запрос 2 (возвращает 177 результатов):
SELECT userId, COUNT(userId) as usercount
FROM `cpnc_PaymentOrder`
WHERE created >= UNIX_TIMESTAMP('2011-02-01')
GROUP BY userId
HAVING usercount > 1
Запрос 3 (возвращает 55 результатов):
SELECT userId, COUNT(userId) as usercount
FROM `cpnc_PaymentOrder`
WHERE created >= UNIX_TIMESTAMP('2011-02-01')
AND created < UNIX_TIMESTAMP('2011-03-01')
GROUP BY userId
HAVING usercount > 1
Теперь я бы подумал , что число результатов из запроса 2 за вычетом количества результатов из запроса 1 будет равноколичество результатов из запроса 3. Но это не так.Может кто-нибудь объяснить, почему?
Спасибо, Иона
РЕДАКТИРОВАТЬ:
для уточнения, запрос, который я хочу написать:
SELECT userId
FROM `cpnc_PaymentOrder`
WHERE created >= UNIX_TIMESTAMP('2011-02-01')
AND created < UNIX_TIMESTAMP('2011-03-01')
AND userId "appears in at least one other record from before '2011-03-01'"