题目:

一组通话记录(总共500万条):
ID 主叫号码 被叫号码 通话起始时间 通话结束时间 通话时长
1 98290000 0215466546656 2007-02-01 09:49:53.000 2007-02-01 09:50:16.000 23
2 98290000 021546654666 2007-02-01 09:50:29.000 2007-02-01 09:50:41.000 12
3 98290000 021546654666 2007-02-01 09:50:58.000 2007-02-01 09:51:12.000 14
4 68290900 0755133329866 2007-02-01 10:04:31.000 2007-02-01 10:07:13.000 162
5 78290000 0755255708638 2007-02-01 10:48:26.000 2007-02-01 10:49:23.000 57
6 78290000 0755821119109 2007-02-01 10:49:39.000 2007-02-01 10:52:55.000 196
7 78290000 035730928370 2007-02-01 11:30:45.000 2007-02-01 11:31:58.000 73
8 78290000 0871138889904 2007-02-01 11:33:47.000 2007-02-01 11:35:00.000 73
9 68290000 035730928379 2007-02-01 11:52:20.000 2007-02-01 11:54:56.000 156
10 68290000 0298521811199 2007-02-01 12:44:45.000 2007-02-01 12:45:04.000 19

求其中同一个号码的两次通话之间间隔大于10秒的通话记录ID
例如:6,7,8,9,10条记录均符合。

create table phone (

id number,

zph number,

bph number,

pbegin date,

pend date

);

insert into phone values(1,98290000,0215466546656,to_date('2007-02-01 09:49:53','YYYY-MM-DD HH24:MI:SS'),to_date('2007-02-01 09:50:16','YYYY-MM-DD HH24:MI:SS'));

insert into phone values(2,98290000,021546654666,to_date('2007-02-01 09:50:29','YYYY-MM-DD HH24:MI:SS'),to_date('2007-02-01 09:50:41','YYYY-MM-DD HH24:MI:SS'));

insert into phone values(3,98290000,021546654666,to_date('2007-02-01 09:50:58','YYYY-MM-DD HH24:MI:SS'),to_date('2007-02-01 09:51:12','YYYY-MM-DD HH24:MI:SS'));

insert into phone values(4,68290900,0755133329866,to_date('2007-02-01 10:04:31','YYYY-MM-DD HH24:MI:SS'),to_date('2007-02-01 10:07:13','YYYY-MM-DD HH24:MI:SS'));

insert into phone values(5,78290000,0755255708638,to_date('2007-02-01 10:48:26','YYYY-MM-DD HH24:MI:SS'),to_date('2007-02-01 10:49:23','YYYY-MM-DD HH24:MI:SS'));

insert into phone values(6,78290000,0755821119109,to_date('2007-02-01 10:49:39','YYYY-MM-DD HH24:MI:SS'),to_date('2007-02-01 10:52:55','YYYY-MM-DD HH24:MI:SS'));

insert into phone values(7,78290000,035730928370,to_date('2007-02-01 11:30:45','YYYY-MM-DD HH24:MI:SS'),to_date('2007-02-01 11:31:58','YYYY-MM-DD HH24:MI:SS'));

insert into phone values(8,78290000,0871138889904,to_date('2007-02-01 11:33:47','YYYY-MM-DD HH24:MI:SS'),to_date('2007-02-01 11:35:00','YYYY-MM-DD HH24:MI:SS'));

insert into phone values(9,68290000,035730928379,to_date('2007-02-01 11:52:20','YYYY-MM-DD HH24:MI:SS'),to_date('2007-02-01 11:54:56','YYYY-MM-DD HH24:MI:SS'));

insert into phone values(10,68290000,0298521811199,to_date('2007-02-01 12:44:45','YYYY-MM-DD HH24:MI:SS'),to_date('2007-02-01 12:45:04','YYYY-MM-DD HH24:MI:SS'));

commit;

SQL> select * from phone;

ID        ZPH        BPH PBEGIN      PEND

---------- ---------- ---------- ----------- -----------

1   98290000 2154665466 2007/2/1 9: 2007/2/1 9:

2   98290000 2154665466 2007/2/1 9: 2007/2/1 9:

3   98290000 2154665466 2007/2/1 9: 2007/2/1 9:

4   68290900 7551333298 2007/2/1 10 2007/2/1 10

5   78290000 7552557086 2007/2/1 10 2007/2/1 10

6   78290000 7558211191 2007/2/1 10 2007/2/1 10

7   78290000 3573092837 2007/2/1 11 2007/2/1 11

8   78290000 8711388899 2007/2/1 11 2007/2/1 11

9   68290000 3573092837 2007/2/1 11 2007/2/1 11

10   68290000 2985218111 2007/2/1 12 2007/2/1 12

10 rows selected

SQL> select t1.id

2    from (select rownum rm, t.* from phone t) t1,

3         (select rownum rm, t.* from phone t) t2

4   where t1.zph = t2.zph

5     and t1.rm = t2.rm + 1

6     and (t1.pbegin - t2.pend)*24*60*60 > 10;

ID

----------

2

3

6

7

8

10

6 rows selected

说明:oracle中date类型数据“+、-”操作返回值单位为“day”。

一道与时间差有关的SQL面试题的更多相关文章

  1. 一道sql面试题(查询语句)

    一道sql面试题(查询语句)   id name age 1  a        11 2  b        11 3  c        12 4  d        13 5  e        ...

  2. 汽车之家一道SQL 面试题,大家闲来无事都来敲一敲

    写在前面 上周去汽车之家面试,拿到这个SQL笔试题顿时感觉到有些陌生,因为好长时间不写SQL语句了,当时只写了表设计,示例数据和SQL语句都没写出来. 汽车之家应该用的SQL Server, 编程题一 ...

  3. sql面试题一 学生成绩

    sql面试题一 学生成绩   原帖链接:http://topic.csdn.net/u/20081020/15/1ABF54D0-F401-42AB-A75E-DF90027CEBA0.html 表架 ...

  4. SQL面试题1

    SQL面试题 Sql常用语法 下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言 ...

  5. 数据库基础SQL知识面试题二

    数据库基础SQL知识面试题二 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.选课系统SQL语法练习 course数据库中有以下四张表: •students表(学生表): si ...

  6. 数据库基础SQL知识面试题一

    数据库基础SQL知识面试题一 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 如标题所示,本篇博客主要介绍基础知识的面试题.大家可以用来测试面试者的技术水平,由于个人水平所限,难免 ...

  7. SQLServer 常见SQL笔试题之语句操作题详解

    SqlServer 常见SQL笔试题之语句操作题详解 by:授客 QQ:1033553122 测试数据库 CREATE DATABASE handWriting ON PRIMARY ( name = ...

  8. SQL面试题(网络收集)

    1. 用一条SQL 语句 查询出每门课都大于80 分的学生姓名 name   kecheng   fenshu 张三     语文       81 张三     数学       75 李四     ...

  9. Sql面试题之四(难度:中等 | 含答案 | 有逻辑题)

    Sql面试题之四(难度:中等 | 含答案 | 有逻辑题)

随机推荐

  1. loadrunner 关联匹配多个值

    loadrunner 关联获取从服务器返回相关值,如果需要把所有匹配的值都获取并且把这些值打印出来,怎么做呢? 1.首先要把把所有的匹配值都保存起来,需要在关联函数里面多传递一个参数:"Or ...

  2. 关于java线程、进程的一些问题

    1.多核硬件上,java中同一个进程的多个线程可以运行在不同的CPU上么? 应该是可以的,在eclipse上面跑一个模拟程序,一个死循环的线程可以占用系统(4核,Win7)%的CPU,4个这样的线程刚 ...

  3. linux每日命令(16):head命令

    head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾. 一.命令格式: hea ...

  4. Python爬取金山词霸每日一句,存储到MySQL中

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/7/3 20:25 # @Author : baoshan # @Site : ...

  5. CAD技巧之002——如何用Cass内插高程点或者说加密高程点

    CAD技巧之002——如何用Cass内插高程点或者说加密高程点 很多同志如果遇到奇葩的Cass内插高程点或者说加密高程点,怎么办,一个个编辑?如果工作量很大,怎么办呢. 今天九天就教您一个好方法! 废 ...

  6. 用HTML5+JS开发跨平台的桌面应用

    通过Node.js和WebKit技术的融合,开发者可以用HTML5技术编写UI,同时又能利用Node.js平台上众多library访问本地OS的能力,最终达到用Web技术就可以编写桌面应用的目的. 选 ...

  7. SpringBoot(三)整合Redis

    spring boot对常用的数据库支持外,对nosql 数据库也进行了封装自动化. redis介绍 Redis是目前业界使用最广泛的内存数据存储.相比memcached,Redis支持更丰富的数据结 ...

  8. Thinkphp5 关联模型

    必须建立两个模型分类模型(attr).文章模型(article) attr模型 <?php namespace app\common\model; use think\Model; class ...

  9. highCharts图表入门简介

    一.Highcharts简介 Highcharts:功能强大.开源.美观.图表丰富.兼容绝大多数浏览器的纯js图表库 Highcharts是一款纯javascript编写的图表库,能够很简单便捷的在W ...

  10. android 手机 多分辨率适配

    近来在做android屏幕适配这方面的工作, 今天总算有点眉目.  小记一下 基础知识就不科普了, 网上一大堆. 作为一个刚接触这方面人, 最先进入我脑子的, 是从小到大的各种屏, 小到手表, 大到街 ...