点击上方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中如何求解时间重叠的问题?相关推荐

  1. SQL中的时间重叠问题

    点击关注上方"SQL数据库开发", 设为"置顶或星标",第一时间送达干货 SQL专栏 SQL基础知识第二版 SQL高级知识第二版 问题描述 时间重叠指上下两行数 ...

  2. Oralce 使用SQL中的exists 和not exists 用法详解

    exists表示() 内子查询返回结果不为空,说明where条件成立就会执行sql语句:如果为空,表示where条件不成立,sql语句就不会执行. not exists和  exists相反,子查询语 ...

  3. SQL中的for xml path

    点击关注"SQL数据库开发", 设为"置顶或星标",第一时间送达干货 最近出的每日一题里面,有一道是关于合并同类型数据为一行的题,使用SQL Server 20 ...

  4. SQL 中循环、for循环、游标

    我们使用SQL语句处理数据时,可能会碰到一些需要循环遍历某个表并对其进行相应的操作(添加.修改.删除),这时我们就需要用到咱们在编程中常常用的for或foreach,但是在SQL中写循环往往显得那么吃 ...

  5. SQL中的case when then else end用法

    2019独角兽企业重金招聘Python工程师标准>>> Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sexWHEN '1' THEN ...

  6. 在SQL中使用CRL函数示例

    在SQL中使用CRL函数 实验目标: 1. 在SQL中创建CRL函数,使之能够向指定的计算机发送消息 实验步骤 2. 在VS中创建类发送消息的类 3. 将以下代码黏贴进去 using System; ...

  7. pl/sql中三种游标循环效率对比

    pl/sql中三种游标循环效率对比 - Oracle数据库栏目 - 红黑联盟 http://www.2cto.com/database/201307/224636.html 转载于:https://b ...

  8. SQL中内连接、外连接、交叉连接

    SQL中内连接.外连接.交叉连接 SQL连接可以分为内连接.外连接.交叉连接. 数据库数据:            book表                                      ...

  9. 简单介绍SQL中ISNULL函数使用方法

    这篇文章介绍了SQL Server.MySQL.Oracle三种数据库中ISNULL函数的使用方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 SQL Ser ...

最新文章

  1. SLF4J 之logback.xml配置文件实例及其说明
  2. 从Android的结构看HarmonyOS
  3. 第十一回:琴房外度曲生慕意 书店里软语救阿四[林大帅作品集]
  4. 南瑞变压器保护装置说明书_电力试验:变压器感应耐压试验(二)
  5. 微型计算机原理计算两数和,微型计算机原理及汇编语言 第2章-2 补码及加减运算.ppt...
  6. Apollo 配置中心初探
  7. 【慢慢学算法】:八进制(vector练习)
  8. 快速启动无法识别U盘启动盘。bios无法识别U盘启动盘
  9. 【网络安全】单选/多选/判断/填空题
  10. 汽车用众大牌大屏幕导航仪凯立德地图升级方法
  11. “云上贵州”大赛完整诠释大数据三大业态
  12. 【摘要】STC系列单片机ISP编程器/烧录器的说明
  13. 用公式π/ 4 = 1 – 1 / 3 + 1 / 5 – 1 / 7 + … 求π的近似值,直到最后一项的绝对值小于10的负6次方为止。
  14. 赖床星人的枕头arduino
  15. 服务端mysql数据存储设计_服务端开发指南与最佳实战 | 数据存储技术 | MySQL(03) 如何设计索引...
  16. html无法展示swf,flexpaper无法预览swf文件_html/css_WEB-ITnose
  17. 基于RFM和AHP构建用户评分分析体系
  18. Python爬虫之煎蛋网妹子图(一)
  19. UUOffice 工具箱,一款功能强大的 Excel 办公插件,好用推荐 ~
  20. PHP海量excel数据导出方案解决 xlswriter性能测试

热门文章

  1. 航电oj:18岁生日
  2. 局域网内计算机ping不通的解决(主要是记一下命令)
  3. 什么是事务以及事务的四种特性
  4. DNS解析过程(windows系统举例)
  5. Python Selenium自动化导出新版WOS(web of science)检索结果
  6. [紧急求助] LM317可调式直流稳压源输出电压不稳
  7. 10分钟 GET 新技能 - JSON
  8. 第一次团队编程作业 团队展示+选题报告+需求分析
  9. 赚google的钱啊
  10. java 足球比赛小游戏