У меня есть login_log
стол: Group By Дата Кластеры
И я пытаюсь построить запрос сгруппированных "уникальные" логины baseed на login_email, login_success, login_email, account_type_id, login_lock, login_ip
Так до сих пор у меня есть
SELECT count(*) count, MAX(login_date) date, login_ip, login_email, account_type_id, login_lock, login_success
FROM `login_log`
GROUP BY login_email, login_success, login_email, account_type_id, login_lock, login_ip
ORDER BY date DESC
Который получает меня:
Но возьмите ряд 5 и 6, например. В 6 пользователь пропустил логин 3 раза перед успешным в строке 5. Количество строк 5 должно читать 1, но оно группирует успешные логины до неудачных попыток.
Что я хочу - это одна строка с успешным логином, строка с неудачным входом в систему, а затем строка с успешным логином, упорядоченная по дате.
Как сгруппировать запрос по дате, чтобы они не «прыгали» друг с другом?
Если группа I по дате я мог бы, а не группа вообще. Идея, скажем, 3 неудачных попытки входа в систему, которые один за другим будет сгруппированы, но если между ними произойдет успешный, он вернет 3 строки, счет 2 => сбой, счет 1 => успех, счет 1 => сбой –
Я понимаю что ты имеешь ввиду. Похоже, вам нужен интервал, который изменяется с помощью login_success. Не знаете, как это сделать в чистом MySQL. Это может быть хорошим началом: [link] (http://www.artfulsoftware.com/infotree/queries.php?&bw=1280#798) - он рассказывает вам, как идентифицировать строки, которые отличаются от _ сразу же предыдущих строк_, поскольку вы описанный выше – citizenen
с использованием Date(), является быстрым, достаточно близким исправлением. –