1. 以一个月作为统计单位
2. 每日登录人数
3. 每日帐号登录数
4. 每日最高在线人数
  tb1
在线人数
记录时间怎么用一句sql语句写出来如:时间 登录人数 帐号登录数 最高在线人数
 2010-01-01       100               203              111
   ……          ……             ……             ……

解决方案 »

  1.   

    select '2010-01',sum (在线人数)
    from table1 
    where 记录时间='2010-01'
    group by 记录时间
      

  2.   

      tb1
    在线人数
    记录时间  tb2帐号登陆
    ID
    记录时间
    登录数据  0 - logout  1 - login  2 - double login  
    玩家记录IP
    ---------------------------------------------------
    时间    帐号登录   最高在线人数
      

  3.   

       tb
    玩家Unit ID
    记录时间
    记录时间  0 - logout  1 - login  2 - double login  
    ————————————-——
    SELECT * FROM tb  得到如下:
        玩家Unit ID           记录时间              记录时间      
    65343426301916418 2010-12-15 11:20:59.403 0
    65343426301916420 2010-12-15 11:32:23.247 0
    65343426301916419 2010-12-15 11:54:19.403 0
    162442 2010-12-15 14:30:28.123 0
    162192 2010-12-15 14:31:48.153 0
    162192 2010-12-15 14:34:46.390 0
    1503 2010-12-15 14:34:46.530 0
    162192 2010-12-15 14:35:31.357 0
    162192 2010-12-15 14:37:57.903 0
    162192 2010-12-15 14:40:40.437 0
    847 2010-12-15 14:42:31.140 0
    196363 2010-12-15 14:51:01.937 0
    196363 2010-12-15 15:04:17.763 0
    628 2010-12-15 15:15:59.903 2
    628 2010-12-15 15:16:00.107 0——————————————————————我要的结果是:distinct重复的ID  算出每日登录的帐号有多少
      

  4.   

    是不是这样:
    [code=SQ]
    select a.记录时间, a.登录人数, a.帐号登录数, b.最高在线人数
    from (
    select 记录时间=convert(varchar(10),记录时间,120),帐号登录数=count([玩家Unit ID]), 登录人数=count(distinct [玩家Unit ID]) 
    from tb2 
    group by convert(varchar(10),记录时间,120)
    ) a join (
    select 记录时间=convert(varchar(10),记录时间,120),最高在线人数=max(在线人数)
    from tb1
    group by convert(varchar(10),记录时间,120)
    ) b on a.记录时间 = b.记录时间
    order by a.记录时间
    [/code]
      

  5.   

    [code=SQ]最好给出完整的表结构,测试数据,计算方法和正确结果.否则耽搁的是你宝贵的时间。
    如果有多表,表之间如何关联?
    [/code]发帖注意事项
    http://topic.csdn.net/u/20091130/21/fb718680-98ff-4afb-98d8-cff2f8293ed5.html?24281
      

  6.   

    select convert(varchar(10),eventtime,120),count(distinct uin) from tb group by convert(varchar(10),eventtime,120) order by convert(varchar(10),eventtime,120)