Я успешно получил данные, используя приведенный ниже запрос, из данных за январь до мая, генерирующих каждую первую и вторую покупку для каждого клиента.
SELECT
MAX(CASE WHEN row_num = 1 THEN month END) AS month,
customer_id,
1 AS row_num,
DATE_DIFF(MAX(CASE WHEN row_num = 2 THEN verified_date END),
MAX(CASE WHEN row_num = 1 THEN verified_date END), DAY) AS difference
FROM yourTable
GROUP BY
customer_id;
Теперь я хотел бы отфильтровать месяц, чтобы получить всепользователь делает ПЕРВАЯ транзакция в январе-апреле и делает ВТОРАЯ транзакция в любое время (январь-май) и пытается выполнить этот запрос:
SELECT
MAX(CASE WHEN row_num = 1 AND month IN (1,2,3,4) THEN month END) AS month,
customer_id,
1 AS row_num,
DATE_DIFF(MAX(CASE WHEN row_num = 2 THEN verified_date END),
MAX(CASE WHEN row_num = 1 THEN verified_date END), DAY) AS difference
FROM yourTable
GROUP BY
customer_id;
Запрос успешно выполняетсяоднако он сгенерировал месяц 1 2 3 4 и NULL в поле месяца.
Почему в нем значение NULL?
Спасибо