按楼上描述的需求,用lead函数就行了
select * from(
select t.*,lead(开始时间)over(partition by 号码 order by 编号)-结束时间 time
from table1 t)
where time*24*60*60>10
select * from(
select t.*,lead(开始时间)over(partition by 号码 order by 编号)-结束时间 time
from table1 t)
where time*24*60*60>10
解决方案 »
- 32位的oracle数据库在64位的服务器操作系统下能识别多大内存?
- 求大侠帮助__大侠快快现身~~~~~~~~小弟真心求教~~~[
- oracle 建库时提示enterprise manager配置出错,启动database control 出错
- JDBC:java.sql.SQLException: 不允许的操作: Unsupported syntax for refreshRow() -- 如何解决?
- 小弟很菜,望各位高手好心帮助!
- 急求这sql语句写法!!!
- 我想请问高手们,我要做一个asp+oracle数据库的图书网站,我只会用asp\access和一点sql server,我需要怎样和懂oracle的人配合
- 求SQL语句
- 又没有这么一种监视器
- 安装Oracle9i产品列表时,报jre有问题.why???急!!!
- 100分只求只有一个表的SQL语句
- ORA-01139错误,请人看看(急!在线等!!!)
select * from table1 t
where not exists(
select 1 from table1
where 号码=t.号码 and 开始时间-t.结束时间 between 0 and 10/24/3600)
and exists(
select 1 from table1
where 号码=t.号码 and 编号>t.编号)
号码,
被叫号码,
开始时间,
结束时间,
通话时长 from
(
select a.*,
to_number(replace(开始时间,':',''))
- last_value(to_number(replace(结束时间,':',''))) over(partition by 被叫号码 order by 结束时间 ROWS PRECEDING 1 and PRECEDING 1) as 通话间隔1,
first_value(to_number(replace(开始时间,':',''))) over(partition by 被叫号码 order by 开始时间 ROWS 1 FOLLOWING and 1 FOLLOWING)
- to_number(replace(结束时间,':','')) as 通话间隔2
from 通话记录 a
)
where 通话间隔1>=10 or 通话间隔2>=10
alter session set nls_date_formate='yyyy-mm-dd hh24:mi:dd';
create table tb_mumu (
ID number primary key not null,
主叫号码 varchar2(11) not null,
被叫号码 varchar2(11) not null,
通话开始时间 date not null,
通话结束时间 date not null,
通话时长 number not null
);
delete from tb_mumu;
insert into tb_mumu (ID, 主叫号码, 被叫号码, 通话开始时间, 通话结束时间, 通话时长) values (2, 'HPD9JNQOG3C', 'T0HME2XWIBF', '379-4-27', '1-1-1', 6);insert into tb_mumu (ID, 主叫号码, 被叫号码, 通话开始时间, 通话结束时间, 通话时长) values (9, 'YF3 CIJKK4', 'CTAF8Y9PJ6Q', '865-6-20 9:25:9', '1899-9-27 2:18:20', 9);insert into tb_mumu (ID, 主叫号码, 被叫号码, 通话开始时间, 通话结束时间, 通话时长) values (3, 'MFB1KRRH9UP', 'TDHV YJ0I5T', '134-7-9 12:57:4', '280-9-15 6:23:18', 1);insert into tb_mumu (ID, 主叫号码, 被叫号码, 通话开始时间, 通话结束时间, 通话时长) values (0, 'XWI4F7U6RTY', 'LM6T32PAW9B', '1-1-1 0:0:0', '743-4-2 23:49:42', 8);insert into tb_mumu (ID, 主叫号码, 被叫号码, 通话开始时间, 通话结束时间, 通话时长) values (6, 'YLD89T C2N1', '4PTOKP84 1S', '1145-1-11 22:17:42', '500-9-2 17:33:12', 5);insert into tb_mumu (ID, 主叫号码, 被叫号码, 通话开始时间, 通话结束时间, 通话时长) values (1, ' W88KNTPG6P', 'T63I 3FQNI1', '1010-8-31 19:43:4', '848-5-6 20:26:26', 7);insert into tb_mumu (ID, 主叫号码, 被叫号码, 通话开始时间, 通话结束时间, 通话时长) values (5, 'FFXP2KCPKJC', 'E6O9E7JIL4H', '587-4-3 19:5:16', '1078-11-22 22:42:55', 0);insert into tb_mumu (ID, 主叫号码, 被叫号码, 通话开始时间, 通话结束时间, 通话时长) values (4, '47ERHYQB5MG', 'XOW5B5YFY2L', '1599-8-20 0:17:43', '1371-6-17 1:17:59', 2);insert into tb_mumu (ID, 主叫号码, 被叫号码, 通话开始时间, 通话结束时间, 通话时长) values (7, '1OH4X4VN9E1', '2EW0V97QD6L', '1362-11-30 5:44:58', '1531-2-23 11:46:56', 3);insert into tb_mumu (ID, 主叫号码, 被叫号码, 通话开始时间, 通话结束时间, 通话时长) values (8, 'XN4USJ55SG4', 'KFFKLTSLOJC', '1813-06-22 19:38:51', '1741-11-22 14:23:41', 4);
修改下: 将这些数据插入 目前数据插入不了 附加留言请确保正确性然后回帖然后回答问题 O(∩_∩)O哈哈~
(select t.* , px = (select count(1) from tb where 号码 = t.号码 and 开始时间 < t.开始时间) + 1 from tb) m ,
(select t.* , px = (select count(1) from tb where 号码 = t.号码 and 开始时间 < t.开始时间) + 1 from tb) n
where m.号码 = n.号码 and m.px = n.px - 1 and datediff(ss , m.结束时间 , n.开始时间 ) . 10