24小时有效一次,你都规定是1次了,还统计什么???
要么用时间去做减法(order by 发帖时间,用TOP2把最后两个值取出一比就完了呗,没事搞什么遍历),要么有回复就锁24小时ID

解决方案 »

  1.   

    SELECT *,count(DISTINCT(发贴时间的前8位)) AS times FROM table GROUP BY id
      

  2.   

    SELECT 作者id, 发贴时间
    FROM table a
    WHERE (NOT EXISTS
         (SELECT 作者id
         FROM table b
         WHERE b.作者id = a.作者id AND b.发贴时间 > a.发贴时间))
    ORDER BY 作者id, 发贴时间 DESC
      

  3.   

    declare @t table([作者ID] int ,[发贴时间] datetime)
    insert into @t 
    select 11,'08-01-01 15:00 ' union 
    select 12,'08-01-01 16:00 ' union 
    select 13,'08-01-01 17:00 ' union 
    select 12,'08-01-01 18:00 ' union 
    select 12,'08-01-02 16:00 ' 
    select id,count(*)as [发贴次数] from (
    select [作者ID] as id from @t group by [作者ID],
    CONVERT (varchar(10),[发贴时间],120)) T group by T.id
      

  4.   

    select count(ID) as cnt,ID from table where str_date="xxxx-xx-xx" group by ID order by cnt
      

  5.   

    SELECT   作者id,   发贴时间 
    FROM   table   a 
    WHERE   (NOT   EXISTS 
         (SELECT   作者id 
           FROM   table   b 
           WHERE   b.作者id   =   a.作者id   AND   b.发贴时间   >   a.发贴时间)) 
    ORDER   BY   作者id,   发贴时间   DESC