一道与时间差有关的SQL面试题
题目:
一组通话记录(总共500万条): 求其中同一个号码的两次通话之间间隔大于10秒的通话记录ID |
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面试题的更多相关文章
- 一道sql面试题(查询语句)
一道sql面试题(查询语句) id name age 1 a 11 2 b 11 3 c 12 4 d 13 5 e ...
- 汽车之家一道SQL 面试题,大家闲来无事都来敲一敲
写在前面 上周去汽车之家面试,拿到这个SQL笔试题顿时感觉到有些陌生,因为好长时间不写SQL语句了,当时只写了表设计,示例数据和SQL语句都没写出来. 汽车之家应该用的SQL Server, 编程题一 ...
- sql面试题一 学生成绩
sql面试题一 学生成绩 原帖链接:http://topic.csdn.net/u/20081020/15/1ABF54D0-F401-42AB-A75E-DF90027CEBA0.html 表架 ...
- SQL面试题1
SQL面试题 Sql常用语法 下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言 ...
- 数据库基础SQL知识面试题二
数据库基础SQL知识面试题二 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.选课系统SQL语法练习 course数据库中有以下四张表: •students表(学生表): si ...
- 数据库基础SQL知识面试题一
数据库基础SQL知识面试题一 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如标题所示,本篇博客主要介绍基础知识的面试题.大家可以用来测试面试者的技术水平,由于个人水平所限,难免 ...
- SQLServer 常见SQL笔试题之语句操作题详解
SqlServer 常见SQL笔试题之语句操作题详解 by:授客 QQ:1033553122 测试数据库 CREATE DATABASE handWriting ON PRIMARY ( name = ...
- SQL面试题(网络收集)
1. 用一条SQL 语句 查询出每门课都大于80 分的学生姓名 name kecheng fenshu 张三 语文 81 张三 数学 75 李四 ...
- Sql面试题之四(难度:中等 | 含答案 | 有逻辑题)
Sql面试题之四(难度:中等 | 含答案 | 有逻辑题)
随机推荐
- 高性能IO之Reactor模式(转载)
讲到高性能IO绕不开Reactor模式,它是大多数IO相关组件如Netty.Redis在使用的IO模式,为什么需要这种模式,它是如何设计来解决高性能并发的呢? 最最原始的网络编程思路就是服务器用一个w ...
- GCD使用:让程序在后台较长久的运行(UIBackgroundTaskIdentifier )
在没有使用GCD时,当app被按home键退出后,app仅有最多5秒钟的时候做一些保存或清理资源的工作.但是在使用GCD后,app最多有10分钟的时间在后台长久运行.这个时间可以用来做清理本地 ...
- tail -f 实时查看日志文件 linux查看日志后100行
tail -f 实时查看日志文件 tail -f 日志文件logtail - 100f 实时查看日志文件 后一百行tail -f -n 100 catalina.out linux查看日志后100行搜 ...
- Python3用gevent写个文件字符串查找器
[本文出自天外归云的博客园] 1.递归遍历目录下所有文件并通过finder函数定位指定格式字符串 2.用来查找字符串的finder函数是自己定义的,这里定义了一个ip_port_finder通过正则表 ...
- Ramda函数式编程之PHP
0x00 何为函数式编程 网上已经有好多详细的接受了,我认为比较重要的有: 函数是"第一等公民",即函数和其它数据类型一样处于平等地位 使用"表达式"(指一个单 ...
- C#获取起始位置以及添加全局资源字典
获取起始位置 Path.Combine(AppDomain.CurrentDomain.BaseDirectory); 添加全局资源 string temp = "this is a str ...
- Java连接各种数据库写法
# 示例配置参考,涵盖几乎所有的主流数据库 ############# Oracle数据库 ######################## # 数据库驱动名 driver=oracle.jdbc ...
- Git 更新操作
修改现有函数 Tom 执行克隆操作后,看到新的文件string.c,他想知道这个文件到存储库?目的是什么?于是,他执行 git 日志命令. [tom@CentOS ~]$ git clone gitu ...
- 图像处理滤波应用(Halcon)
1.增强对比度:halcon算子 equ_histo_image (GrayImage, ImageEquHisto) 2.空间滤波基础 滤波指接受或拒绝一定的频率分量.低通滤波器的最终效果是模糊(平 ...
- Ubuntu命令行
1.打开图形界面的终端 打开:Ctrl+Alt+T 退出:Ctrl+D 2.打开DOS界面的终端 打开:Ctrl+Alt+F1(F1~F6) 退出:Ctrl+Alt+F7 3.用户 ubuntu初始r ...