各位大虾好!
下面有个问题共同商讨,看看有没有更好的执行方式,谢谢!
--------------------------------
idname     time
a         02:06:21
b         02:06:47
c         02:08:27
a         02:37:22
c         02:48:34
a         03:08:20若IDNAME为用户名,TIME为该用户点击页面的时间,
想得到每个用户在线的平均时长,
比如IDNAME为a的用户在线时长即为02:06:21到03:08:20的时间差;

解决方案 »

  1.   

    select idname,max(time)-min(time) from table1 group by idname
      

  2.   

    这样有上万个记录,而我是想得到这样一个结果列表:
    -----------------
    ID名称   在线时长
    a        23
    b        4
    c        5
      

  3.   

    sdhylj(青锋-SS),這兩個字符串能直接相減嗎? :)
      

  4.   

    Create Table TEST
    (idname Varchar(10),
     [time] Varchar(8))
    Insert TEST Select 'a ',        '02:06:21'
    Union All Select 'b',         '02:06:47'
    Union All Select 'c',         '02:08:27'
    Union All Select 'a',         '02:37:22'
    Union All Select 'c',         '02:48:34'
    Union All Select 'a',         '03:08:20'
    GO
    Select
    idname,
    DateDiff(ss, Min([time]), Max([time]))  As 时间差
    From
    TEST
    Group By
    idname
    GO
    Drop Table TEST
    --Result
    /*
    idname 时间差
    a  3719
    b 0
    c 2407
    */
      

  5.   

    --估计楼主没明白我的意思,其实下面的语句检索出来的结果就是楼主想要的数据.
    select idname as ID名称,max(time)-min(time) as 在线时长
    from table1
    group by idname