看看这个语句速度会不会好一些,建(UserID,sendTime)索引.
select distinct a.UserID from table1 a,table1 b,table1 c
where b.UserID=a.UserID
and b.sendTime<a.sendTime
and c.UserID=a.UserID
and c.sendTime<b.sendTime
and datediff(second,c.sendTime,a.sendTime) between 0 and 300

解决方案 »

  1.   

    select UserID from table where exists (select count(*)>3 from table 
    group by UserID where datediff(mm,time1,time2) between 0 and 5
      

  2.   

    select id, linknum = count(*) into #t1 where time ...select id from #t1 where linknum > 3
      

  3.   

    select id, linknum = count(*) into #t1 where time ...select id from #t1 where linknum > 3
      

  4.   

    SELECT UserID,Cnt  From
    (
    SELECT a.UserID,SUM(CASE WHEN DATEDIFF(ss,a.SendTime,b.SendTime)<=300 THEN 1 ELSE 0 END) AS Cnt 
    FROM TableName a LEFT JOIN TableName b
    ON a.UserID=b.UserID AND a.SendTime<b.SendTime
    GROUP BY a.UserID
    ) as Result
    WHERE Cnt>=3--未測試.
      

  5.   

    : N_chow(一劍飄香) ,高!
     Yang_(扬帆破浪) ,你三个表放内存,快不了