select count(*) as 未登陆天数,(select avg(UNIX_TIMESTAMP(time_out)-UNIX_TIMESTAMP(time_in)) from 表结果如上) from ( select 1 as d union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 ) t where not in (select day(time_in) from 表结果如上)
from (
select 1 as d union all
select 2 union all
select 3 union all
select 4 union all
select 5 union all
select 6 union all
select 7
) t where not in (select day(time_in) from 表结果如上)
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
`Time_out` datetime DEFAULT NULL,
`LOG_ID` int(11) NOT NULL AUTO_INCREMENT,
`USER_ID` varchar(20) DEFAULT NULL,
`TIME` datetime DEFAULT NULL,
`IP` varchar(20) DEFAULT NULL,
`IP_AREA` varchar(225) DEFAULT NULL,
`TYPE` varchar(10) DEFAULT '1',
`REMARK` mediumtext NOT NULL,
PRIMARY KEY (`LOG_ID`)
) ENGINE=MyISAM AUTO_INCREMENT=25451 DEFAULT CHARSET=utf8;
INSERT INTO `sys_log` VALUES ('2010-10-14 15:46:57', '1', 'admin', '2010-10-14 14:46:57', '122.193.135.84', null, '1', '');
INSERT INTO `sys_log` VALUES ('2010-10-14 16:46:57', '2', 'admin', '2010-10-14 16:20:16', '127.0.0.1', null, '1', '');
INSERT INTO `sys_log` VALUES ('2010-10-14 18:46:57', '3', 'admin', '2010-10-14 17:56:35', '122.193.135.84', null, '1', '');
INSERT INTO `sys_log` VALUES ('2010-10-14 20:46:57', '4', 'admin', '2010-10-14 19:00:59', '122.193.135.84', null, '1', '');
INSERT INTO `sys_log` VALUES ('2010-10-15 16:46:57', '5', 'admin', '2010-10-15 16:09:44', '122.193.135.84', null, '1', '');
INSERT INTO `sys_log` VALUES ('2010-10-16 10:46:57', '6', 'admin', '2010-10-16 09:02:22', '122.193.135.84', null, '1', '');
INSERT INTO `sys_log` VALUES ('2010-10-16 14:46:57', '7', 'admin', '2010-10-16 12:48:24', '122.193.135.84', null, '1', '');
INSERT INTO `sys_log` VALUES ('2010-10-16 10:46:57', '9', 'tom', '2010-10-16 09:02:22', '122.193.135.84', null, '1', '');
INSERT INTO `sys_log` VALUES ('2010-10-17 14:46:57', '10', 'tom', '2010-10-17 12:48:24', '122.193.135.84', null, '1', '');
INSERT INTO `sys_log` VALUES ('2010-10-18 10:46:57', '11', 'tom', '2010-10-18 09:02:22', '122.193.135.84', null, '1', '');求2011-10-01到2011-10-30日之间所有人的未登陆的天数及平均的每天的登录时间
结果如下 姓名 未登录天数 平均登陆时间
admin 27天 0.3小时
tom 28天 0.1小时如admin的未登录天数=2011-10-01到2011-10-30的30天减去14,15,16登陆过的3天
admin的平均登陆时间=每天的 time_out-time的时间相加(所有在线时间) 除以30天mysql 5数据库