У меня есть таблица в MySQL, который выглядит, как это -SQL - Получить счет за каждый час
user_id | login_date | ip_address
45 2016-03-28 21:18:01 111.111.111.111
43 2016-03-28 22:18:01 122.122.122.122
Everytime входа пользователя в нем будет создавать новую запись в этой таблице, что я хочу, чтобы иметь возможность сделать так, чтобы подсчитать количество логинов в час-час, поэтому, когда я запустил запрос, он будет выглядеть так.
date | hour | count
2016-03-28 19-20 0
2016-03-28 21-22 2
Например, на 31 марта 2016 года с час 09 до 10 5 человек вошли в то время как 31-го марта 2016 года от часа 10 до 11 0 человек вошли в
Используя этот ответ -.
SELECT
DATE(login_date),
HOUR(login_date),
COUNT(*)
FROM logins
WHERE DATE(login_date) IS NOT NULL
GROUP BY CONCAT(DATE(login_date),HOUR(login_date))
ORDER BY HOUR(login_date) ASC
дает мне -
Почему я получаю NULL?
я затем использовать эти данные, чтобы создать комбинированную диаграмму, чтобы сравнить сегодняшние логины против вчерашнего
Заранее спасибо за помощь
Вы подсчет логины по user_id или ip_address или оба? – Matt
В чем вопрос? – jotik
Это не часовая работа - если бы это было так, '21' было бы' 1', а '22' было бы' 1' - вместо этого вы рассчитываете от «21: 00: 00' до« 22 » : 59: 59' (что составляет 1 час 59 минут 59 секунд). Если вы хотите группировать по часам, вы можете использовать «GROUP BY DATE (login_date), HOUR (login_date)». – h2ooooooo