有用户关于位置和时间的事件列表,需要保留用户的行为轨迹:即在同一位置连续时间段内发生的事件合并成一条,保留最早发生和最晚结束时间,若用户移动到别的位置,又移动回原位,不进行合并,如下图:最终合并成:请问不用游标,该如何操作,谢谢!
解决方案 »
- orcle数据库中如何查询最新插入的数据
- 怎么将数据存入有一个变量的类型为blob的数据库中
- .net 连接 linux 下Oracle 10.2 求助
- 触发器报错
- 这段代码慢在哪?请高手帮忙,急!!
- 服务器命名下的节点不见了
- 请各位oracle 高手帮小弟看看下面的问题,谢谢!!!!!
- 建立oracle数据源的问题
- 我装了9i,可以在服务器用sqlplus可能连上,但在其它机子就安不上了,我在用jbuilder的连接工具就能连,这是为什么啊,我怎么才能用其它工
- oracle 用正则匹配where 每个独立条件
- 触发器里加判断
- 一个让我很郁闷的:character to number conversion error ——求指点
SELECT '甲' person, 'a' position, '17:00' begintime, '17:10' endtime FROM dual UNION ALL
SELECT '甲' person, 'a' position, '17:10' begintime, '17:30' endtime FROM dual UNION ALL
SELECT '甲' person, 'a' position, '17:30' begintime, '17:35' endtime FROM dual UNION ALL
SELECT '甲' person, 'b' position, '17:35' begintime, '17:40' endtime FROM dual UNION ALL
SELECT '甲' person, 'a' position, '17:40' begintime, '18:10' endtime FROM dual)
SELECT a.person,
a.position,
MIN(a.begintime) begintime,
MAX(a.endtime) endtime
FROM t a
START WITH NOT EXISTS (SELECT 1
FROM t b
WHERE b.person = a.person
AND b.position = a.position
AND b.endtime = a.begintime)
CONNECT BY PRIOR a.endtime = a.begintime
AND PRIOR a.person = a.person
AND PRIOR a.position = a.position
GROUP BY a.person, a.position, ROWNUM - LEVEL
ORDER BY 1, 3;