Выполняя самостоятельное соединение для Month + 1
и email
(а также принимая во внимание переходы с декабря на январь), это должно сработать:
SELECT
*
FROM
(
SELECT
email,
YEAR( created ) AS createdYear,
MONTH( created ) AS createdMonth
FROM
table
) AS t
INNER JOIN
(
SELECT
email,
YEAR( created ) AS createdYear,
MONTH( created ) AS createdMonth
FROM
table
) AS monthPlus1 ON
t.email = monthPlus1.email
AND
(
(
t.createdMonth = monthPlus1.createdMonth + 1
AND
t.createdYear = monthPlus1.createdYear
)
OR
(
t.createdMonth = 12
AND
monthPlus1.createdMonth = 1
AND
t.createdYear + 1 = monthPlus1.createdYear
)
)
Дата logi c в этот запрос немного корявый - его, вероятно, можно улучшить, представив месяц как одно значение date
или целое число месяцев с начала эпохи c, а не как кортеж year + month
.