Как сделать статистику из даты в бд

Есть статистика вот в таком формате(на скрине показал скрин из бд) Как или какой запрос нужен что бы запросить колличество users_id за последний день,неделю,месяц и тд? .


Ответы (1 шт):

Автор решения: Wairua
SELECT COUNT(u.user_id) FROM (SELECT user_id FROM some_table WHERE DATE_FORMAT(data, '%y%v') = date_format(DATE(NOW()), '%y%v') GROUP BY user_id) u;

# Неделя в формате год (две последние цифры года), неделя (с ведущим нулем)
SELECT user_id FROM some_table WHERE DATE_FORMAT(data, '%y%v') = 1908; # 8-я неделя 2019 года

# За прошлую неделю в формате год (две последние цифры года), неделя (с ведущим нулем)
SELECT user_id FROM some_table WHERE DATE_FORMAT(data, '%y%v') = DATE_FORMAT(DATE(NOW()), '%y%v') - 1;

# Год в своем привычном формате
SELECT user_id FROM some_table WHERE DATE_FORMAT(data, '%Y') = 2019;

Ну и дальше в таком-же духе

→ Ссылка