时间段重叠问题,如何用SQL求解?
点击关注上方“SQL数据库开发”,
设为“置顶或星标”,第一时间送达干货
问题描述
时间重叠指上下两行数据的时间段有重叠部分,现在要找出这些在时间上有重叠的记录。
具体问题
有7个会议室,每个会议室每天都有人开会,某一天的开会时间如下:
查询出开会时间有重叠的是哪几个会议室?上面预期结果是 ID 2 3 4 5 6
问题分析
为了方便分析,我们画了如下一个草图来具体描述。
图中上面部分t和下面部分b有一段是重复的,分别是b.starttime到t.endtime部分。通过数学集合的思想,我们可以得出这个重叠部分的集合关系。
t.starttime<=b.endtime
AND t.endtime>=b.starttime
上面这个数学集合的重叠部分就是我们要的找的。
具体解法
--创建测试数据
WITH Meeting AS(
SELECT 1 ID,'08:00' Starttime,'09:15' Endtime
UNION ALL
SELECT 2,'13:20','15:20'
UNION ALL
SELECT 3,'10:00','14:00'
UNION ALL
SELECT 4,'13:55','16:25'
UNION ALL
SELECT 5,'14:00','17:45'
UNION ALL
SELECT 6,'14:05','17:45'
UNION ALL
SELECT 7,'18:05','19:45')--查询代码
SELECT DISTINCT b.* FROM Meeting t
JOIN Meeting b ON
t.Starttime<=b.Endtime
AND t.Endtime>=b.Starttime
AND b.ID <> t.ID --排除与自身时间相等的值
结果如下:
有兴趣的小伙伴可以动手做一下,兴许下次面试就遇到了。
——End——
后台回复关键字:1024,获取一份精心整理的技术干货
后台回复关键字:进群,带你进入高手如云的交流群。
推荐阅读
50 款数据可视化分析工具大集合,总有一款适合你推荐一款Excel快速加载SQL的插件,方便又好用为Navicat正名,Navicat完全使用手册(上)《SQL必知必会》读书笔记,30分钟入门SQL!像Excel一样使用SQL进行数据分析这是一个能学到技术的公众号,欢迎关注
点击「阅读原文」了解SQL训练营
时间段重叠问题,如何用SQL求解?相关推荐
- (转)MSSQL中如何用SQL清除所有表的数据(downmoon)?
有朋友问起:MSSQL中如何用SQL清除所有表的数据?这个需求分三种类型: 第一:只要数据库中表是空的: 第二:表是空的,并且自增长列可以从1开始增长. 第三:表是空的,并且自增长列可以从1开始增长, ...
- SQL求解两个时间差
sql 求解两个时间差 SELECTDATEDIFF( Second, '2009-8-25 12:15:12', '2009-9-1 7:18:20') --返回相差秒数 SELECTDATEDIF ...
- 如何用SQL实现从第几条记录开始取几条
如何用SQL实现从第几条记录开始取几条 ? select top 10 * from (select top 200 * from table order ...
- 如何用SQL语句查询Excel数据
Q:如何用SQL语句查询Excel数据? A:下列语句可在SQL SERVER中查询Excel工作表中的数据. 2007和2010版本: SELECT * FROM OpenDataSource( ...
- 如何用SQL生成SQL批处理文件?
如何用SQL生成SQL批处理文件? 软件环境: 1.Windows NT4.0+ORACLE 8.0.4 2.ORACLE安装路径为:C:\ORANT 问题提出: 1.用户需要对数据库用户下的每一张表 ...
- 如何用 SQL 做留存率分析?
无论是产品经理.产品运营还是数据分析师,在评估一个产品的用户使用情况时肯定离不开留存率.忠诚度等观测指标.这些指标可以反映用户对于产品的粘性.产品用户价值质量的高低,及时了解用户留存.流失趋势,有助于 ...
- 工作问题:SQL求解用户复购率
SQL求解用户复购率 1.说说问题 2.解决方案 3.附加需求:求每个月总体的复购率 4.附录:输入数据结构及数据SQL 也可在 微信公众号 上观看 1.说说问题 遇到了一个问题:给定一个订单表,里面 ...
- mysql 主码和外码_sql如何用sql语句对一个已经编辑好的表在设置主码和外码?Atlassian Confluence安装以及咋更改数据库...
在上一篇文章中,小编为您详细介绍了关于<如何更改CAD尺寸标注的单位?丽台Q600 优化驱动 装了这个卡>相关知识.本篇中小编将再为您讲解标题sql如何用sql语句对一个已经编辑好的表在设 ...
- 如何用SQL做留存率分析
背景 APP分析中经常用到AARRR模型(海盗模型)用来分析APP的现状,其中一个重要节点就是提高留存(Acquisition),而留存率这个指标在这个阶段可以说是核心指标也不为过.那如何用SQL计算 ...
最新文章
- lr_save_string lr_eval_string使用介绍
- 运维角度浅谈MySQL数据库优化(转自:2018-03-10 李振良 JAVA高级架构)
- CAN总线技术 | 数据链路层04 - CAN节点状态与错误处理机制
- 【OpenCV】OpenCV函数精讲之 -- 感兴趣区域ROI
- sqlserver修改链接服务器,sqlserver怎么新建链接服务器
- 卷积神经网络(CNN)结尾篇:可视化跟踪(Visualize)
- 被罚 50 亿美元,Android 究竟招谁惹谁了?
- 我的世界1.14java原版命令_我的世界:老一辈mc是怎么生存的?鱼骨式挖矿,这些套路你知道吗...
- html5 播放加密视频播放器,.NET MVC对接POLYV——HTML5播放器播放加密视频
- Java、JSP基于Java的题库管理系统的设计与实现
- du和df命令的区别
- 中国工程院院士倪光南:大数据产业安全和发展需同步
- vc模拟 tabletpc_业力和TabletPC笔
- 【汇正财经】成交量的三种表达方式
- 第 2-3 课:迭代法计算定积分
- 【原创】VBA学习笔记(15)VBA的参数传递:ByVal 和 ByRef 的区别
- 被全球数10万顶尖程序员关注收藏!这些JavaScript项目到底强在哪里?
- 儿童全脑九大能力,3-6岁的家长都应该知道
- Linux查询一个进程是被那个启动项启动的
- android蓝牙温湿度,基于蓝牙的温湿度采集系统设计