本帖最后由 panj514 于 2011-08-22 16:18:44 编辑

解决方案 »

  1.   

    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 表结果如上)
      

  2.   

     (不要高估你的汉语表达能力或者我的汉语理解能力)
       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式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)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  3.   

    CREATE TABLE `sys_log` (
      `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数据库