表格,其中包含具有两个日期时间列的网站用户的登录数据。一个是登录时间,另一个是登出时间。
表有以下列
user_id (user id of the
datetime (start login time DATETIME )
datetime_end (end logout time DATETIME)
根据这些数据,我需要生成报告或计算以下内容
第二份报告
有没有办法通过MySQL查询实现这一目标? (或SQL查询)
表是创建
CREATE TABLE IF NOT EXISTS `users_login` (
`login_id` int(11) unsigned NOT NULL,
`user_id` int(11) unsigned NOT NULL DEFAULT '0',
`last_ip` varchar(45) NOT NULL DEFAULT '0.0.0.0',
`server_ip` varchar(225) DEFAULT '0.0.0.0',
`country` varchar(2) NOT NULL DEFAULT '00',
`continent` tinytext,
`datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`datetime_end` datetime NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
答案 0 :(得分:1)
第一个这样的东西
SELECT DATE(datetime),AVG(TIMESTAMPDIFF(MINUTE,datetime,datetime_end)) as DailyAvg
FROM users_login
GROUP BY DATE(datetime)
每小时:
SELECT DATE(datetime),extract(hour from datetime) as HourCol,
AVG(TIMESTAMPDIFF(MINUTE,datetime,datetime_end)) as HourlyAvg
FROM users_login
WHERE DATE(datetime) = date(now())
GROUP BY DATE(datetime),extract(hour from datetime)
当然这个查询有一些例外..你没有解释整个逻辑,所以我假设你想按登录时间和登录日期分组..