Как извлечь статистику количества неактивных пользователей по интервалам времени?

Имеется таблица users и колонка last_sign_in_at (datetime).

Помогите написать SQL запрос чтобы извлечь статистику количества тех, которые не залогинивались
  • более 3 дней
  • более 90 минут, до 3 дней
  • более 30 минут, до 90 минут

в одном запросе?

Ожидаемый вывод:
"> 3 days", "> 90 min", "> 30 min"
5, 40, 100
  • Вопрос задан
  • 181 просмотр
Решения вопроса 1
Immortal_pony
@Immortal_pony Куратор тега MySQL
SELECT 
     SUM(CASE WHEN `last_sign_in_at` <= DATE_SUB(NOW(), INTERVAL 3 DAY) THEN 1 ELSE 0 END) AS '> 3 days',
     SUM(CASE WHEN `last_sign_in_at` <= DATE_SUB(NOW(), INTERVAL 90 MINUTE) AND `last_sign_in_at` >= DATE_SUB(NOW(), INTERVAL 3 DAY) THEN 1 ELSE 0 END) AS '> 90 min',
     SUM(CASE WHEN `last_sign_in_at` <= DATE_SUB(NOW(), INTERVAL 30 MINUTE) AND `last_sign_in_at` >= DATE_SUB(NOW(), INTERVAL 90 MINUTE) THEN 1 ELSE 0 END) AS '> 30 min'
FROM `table`
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы