进入话题A表name time
张三 2011-01-01 12:10:00
张三 2011-01-01 12:50:00
张三 2011-01-01 14:00:00
张三 2011-01-01 14:10:00
李四 2011-01-01 12:10:00
李四 2011-01-01 12:50:00
李四 2011-01-01 14:00:00
李四 2011-01-01 14:10:00B表
name startTime endTime 要求:查询出近两次的时间 大于半小时的数据 保存在B表
如上需求的话 如果显示正确 B表应该如下:
B表
name startTime endTime
张三 2011-01-01 12:10:00 2011-01-01 12:50:00
张三 2011-01-01 12:50:00 2011-01-01 14:00:00
李四 2011-01-01 12:10:00 2011-01-01 12:50:00
李四 2011-01-01 12:50:00 2011-01-01 14:00:00
求查询A表的SQL语句 B表插入就不用了
张三 2011-01-01 12:10:00
张三 2011-01-01 12:50:00
张三 2011-01-01 14:00:00
张三 2011-01-01 14:10:00
李四 2011-01-01 12:10:00
李四 2011-01-01 12:50:00
李四 2011-01-01 14:00:00
李四 2011-01-01 14:10:00B表
name startTime endTime 要求:查询出近两次的时间 大于半小时的数据 保存在B表
如上需求的话 如果显示正确 B表应该如下:
B表
name startTime endTime
张三 2011-01-01 12:10:00 2011-01-01 12:50:00
张三 2011-01-01 12:50:00 2011-01-01 14:00:00
李四 2011-01-01 12:10:00 2011-01-01 12:50:00
李四 2011-01-01 12:50:00 2011-01-01 14:00:00
求查询A表的SQL语句 B表插入就不用了
解决方案 »
- Spring里面有没有类似If语句的功能,能让用户更容易的修改配置?
- sql语句挑战问题,大家帮帮忙哈~~~~~~
- 关于tomcat项目搜索oracle驱动问题
- 100分 求解 关于Hibernate一对一关系的问题
- jsp项目移植问题
- myeclipse 启动tomcat 出现错误??
- HTML页面关于热键问题
- 为何我用JAMES不能向外发邮件
- 一个jndi的问题,各位老哥帮忙看看。。
- 求助java调用存储过程,报错:Parameter number 2 is not an OUT parameter
- jquery问题
- 急。。。求教,j2ee里面的读数据库操作,得到的list,如何生成xml文件?
FROM A t1, A t2
WHERE t1.name = t2.name
AND t1.time < t2.time
AND NOT EXISTS (SELECT 1 FROM A t3 WHERE t3.name = t1.name AND t3.time > t1.time AND t3.time < t2.time)
AND TIMEDIFF(t2.time, t1.time) >= '00:30:00'
t1开始时间,t2结束时间,两者自联,t1 < t2,并且不存在任何一个t1 < t3 < t2的情况最后一个判断半小时的,需要根据你的数据库,我的是mysql
oracle
scott@ORCL> select *from a_6_16;NAME TIME
---------- --------------
张三 01-1月 -11
张三 01-1月 -11
张三 01-1月 -11
张三 01-1月 -11
李四 01-1月 -11
李四 01-1月 -11
李四 01-1月 -11
李四 01-1月 -11select name,
to_char(s_time, 'yyyy-mm-dd hh24:mi:ss') s_time,
to_char(e_time, 'yyyy-mm-dd hh24:mi:ss') e_time
from (select name,
s_time,
e_time,
row_number() over(partition by name order by e_time desc) r_num
from (select name,
lead(time, 1, null) over(partition by name order by time desc) s_time,
time e_time
from a_6_16)
where e_time - s_time > 1 / 24 / 2)
where r_num < 3
NAME S_TIME E_TIME
---------- ------------------- -------------------
李四 2011-01-01 12:50:00 2011-01-01 14:00:00
李四 2011-01-01 12:10:00 2011-01-01 12:50:00
张三 2011-01-01 12:50:00 2011-01-01 14:00:00
张三 2011-01-01 12:10:00 2011-01-01 12:50:00