看看这个语句速度会不会好一些,建(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
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
解决方案 »
- 关于sql2005/2008中模板资源管理器中的默认路径问题【高分求助】
- 循环的sql指令怎么写
- 从数据类型 nvarchar 转换为 float 时出错。
- SQL 查询问题
- sql server 2000 怎样进入查询分析器
- SQL两列内怎么相除(存在多个数字)求解..
- 各位都来帮帮忙~~insert 选择字段的取值问题~~
- 查询网站unique id的访问次数,菜鸟小妹请教各位大虾了~
- 为什么我在原来的数据库新建了很多表,并且也插入了很多数据,但是.MDF文件大小没有变化呢
- sqlserver一个奇怪的问题(内有出错的SQL)
- 怎么样distinct 其中几个字段,而选择所有的字段? 我用了distinct 可是还是全部去来了。高人请帮忙啊!谢谢
- 现在电力系统中用的可靠性系统到了什么程度?
group by UserID where datediff(mm,time1,time2) between 0 and 5
(
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--未測試.
Yang_(扬帆破浪) ,你三个表放内存,快不了