有这样一张表,如何按时间点,进行分组,然后进行统计数目,比如2点这个时间 一共有多少个人。谁能说下SQL语句怎么写呀,谢谢谢谢!

解决方案 »

  1.   

    看不见你的图,假设是以每一个小时进行统计,可以 group by convert(varchar(13),dt,120)
      

  2.   

    http://blog.csdn.net/ccs02287/archive/2010/05/31/5635483.aspx
    参考下这个?
      

  3.   

     group by convert(varchar(10),dt,120)
      

  4.   

    --DATA
    CREATE TABLE #
    (
    id INT IDENTITY,
    [name] VARCHAR(100),
    date DATETIME
    )
    INSERT #
    SELECT 'a', '2011-1-1 10:05:00' UNION ALL
    SELECT 'a', '2011-1-1 10:30:00' UNION ALL
    SELECT 'a', '2011-1-1 10:59:00' UNION ALL
    SELECT 'a', '2011-1-1 11:11:00'
    --SQL:按小时统计
    SELECT 
    时间段 = (DATEADD(SECOND, -DATEPART(SECOND, [date]), DATEADD(MINUTE, -DATEPART(MINUTE, [date]), [date]))), 
    登陆数量 = COUNT(*)
    FROM #
    GROUP BY DATEADD(SECOND, -DATEPART(SECOND, [date]), DATEADD(MINUTE, -DATEPART(MINUTE, [date]), [date]))
    --RESULT
    /*
    时间段 登陆数量
    2011-01-01 10:00:00.000 3
    2011-01-01 11:00:00.000 1
    */