SQL中如何求解时间重叠的问题?
点击上方SQL数据库开发,关注获取SQL视频教程
SQL专栏
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 --排除与自身时间相等的值
结果如下:
有兴趣的小伙伴可以动手做一下,顺便说一下题目来自我的知识星球,感兴趣的可以长按文章底部二维码加入。
全球最有价值的10家公司(1997-2019)
《长安十二时辰》走红,里面的大数据技术你不能不知道
公众号内回复1,拉你进微信交流群
长按下方二维码加入,我们的SQL训练营
点击"阅读原文",了解SQL训练营
SQL中如何求解时间重叠的问题?相关推荐
- SQL中的时间重叠问题
点击关注上方"SQL数据库开发", 设为"置顶或星标",第一时间送达干货 SQL专栏 SQL基础知识第二版 SQL高级知识第二版 问题描述 时间重叠指上下两行数 ...
- Oralce 使用SQL中的exists 和not exists 用法详解
exists表示() 内子查询返回结果不为空,说明where条件成立就会执行sql语句:如果为空,表示where条件不成立,sql语句就不会执行. not exists和 exists相反,子查询语 ...
- SQL中的for xml path
点击关注"SQL数据库开发", 设为"置顶或星标",第一时间送达干货 最近出的每日一题里面,有一道是关于合并同类型数据为一行的题,使用SQL Server 20 ...
- SQL 中循环、for循环、游标
我们使用SQL语句处理数据时,可能会碰到一些需要循环遍历某个表并对其进行相应的操作(添加.修改.删除),这时我们就需要用到咱们在编程中常常用的for或foreach,但是在SQL中写循环往往显得那么吃 ...
- SQL中的case when then else end用法
2019独角兽企业重金招聘Python工程师标准>>> Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sexWHEN '1' THEN ...
- 在SQL中使用CRL函数示例
在SQL中使用CRL函数 实验目标: 1. 在SQL中创建CRL函数,使之能够向指定的计算机发送消息 实验步骤 2. 在VS中创建类发送消息的类 3. 将以下代码黏贴进去 using System; ...
- pl/sql中三种游标循环效率对比
pl/sql中三种游标循环效率对比 - Oracle数据库栏目 - 红黑联盟 http://www.2cto.com/database/201307/224636.html 转载于:https://b ...
- SQL中内连接、外连接、交叉连接
SQL中内连接.外连接.交叉连接 SQL连接可以分为内连接.外连接.交叉连接. 数据库数据: book表 ...
- 简单介绍SQL中ISNULL函数使用方法
这篇文章介绍了SQL Server.MySQL.Oracle三种数据库中ISNULL函数的使用方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 SQL Ser ...
最新文章
- SLF4J 之logback.xml配置文件实例及其说明
- 从Android的结构看HarmonyOS
- 第十一回:琴房外度曲生慕意 书店里软语救阿四[林大帅作品集]
- 南瑞变压器保护装置说明书_电力试验:变压器感应耐压试验(二)
- 微型计算机原理计算两数和,微型计算机原理及汇编语言 第2章-2 补码及加减运算.ppt...
- Apollo 配置中心初探
- 【慢慢学算法】:八进制(vector练习)
- 快速启动无法识别U盘启动盘。bios无法识别U盘启动盘
- 【网络安全】单选/多选/判断/填空题
- 汽车用众大牌大屏幕导航仪凯立德地图升级方法
- “云上贵州”大赛完整诠释大数据三大业态
- 【摘要】STC系列单片机ISP编程器/烧录器的说明
- 用公式π/ 4 = 1 – 1 / 3 + 1 / 5 – 1 / 7 + … 求π的近似值,直到最后一项的绝对值小于10的负6次方为止。
- 赖床星人的枕头arduino
- 服务端mysql数据存储设计_服务端开发指南与最佳实战 | 数据存储技术 | MySQL(03) 如何设计索引...
- html无法展示swf,flexpaper无法预览swf文件_html/css_WEB-ITnose
- 基于RFM和AHP构建用户评分分析体系
- Python爬虫之煎蛋网妹子图(一)
- UUOffice 工具箱,一款功能强大的 Excel 办公插件,好用推荐 ~
- PHP海量excel数据导出方案解决 xlswriter性能测试