点击关注上方“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求解?相关推荐

  1. (转)MSSQL中如何用SQL清除所有表的数据(downmoon)?

    有朋友问起:MSSQL中如何用SQL清除所有表的数据?这个需求分三种类型: 第一:只要数据库中表是空的: 第二:表是空的,并且自增长列可以从1开始增长. 第三:表是空的,并且自增长列可以从1开始增长, ...

  2. SQL求解两个时间差

    sql 求解两个时间差 SELECTDATEDIFF( Second, '2009-8-25 12:15:12', '2009-9-1 7:18:20') --返回相差秒数 SELECTDATEDIF ...

  3. 如何用SQL实现从第几条记录开始取几条

    如何用SQL实现从第几条记录开始取几条 ? select   top   10   *   from   (select   top   200   *   from   table   order ...

  4. 如何用SQL语句查询Excel数据

    Q:如何用SQL语句查询Excel数据? A:下列语句可在SQL SERVER中查询Excel工作表中的数据. 2007和2010版本: SELECT *  FROM OpenDataSource(  ...

  5. 如何用SQL生成SQL批处理文件?

    如何用SQL生成SQL批处理文件? 软件环境: 1.Windows NT4.0+ORACLE 8.0.4 2.ORACLE安装路径为:C:\ORANT 问题提出: 1.用户需要对数据库用户下的每一张表 ...

  6. 如何用 SQL 做留存率分析?

    无论是产品经理.产品运营还是数据分析师,在评估一个产品的用户使用情况时肯定离不开留存率.忠诚度等观测指标.这些指标可以反映用户对于产品的粘性.产品用户价值质量的高低,及时了解用户留存.流失趋势,有助于 ...

  7. 工作问题:SQL求解用户复购率

    SQL求解用户复购率 1.说说问题 2.解决方案 3.附加需求:求每个月总体的复购率 4.附录:输入数据结构及数据SQL 也可在 微信公众号 上观看 1.说说问题 遇到了一个问题:给定一个订单表,里面 ...

  8. mysql 主码和外码_sql如何用sql语句对一个已经编辑好的表在设置主码和外码?Atlassian Confluence安装以及咋更改数据库...

    在上一篇文章中,小编为您详细介绍了关于<如何更改CAD尺寸标注的单位?丽台Q600 优化驱动 装了这个卡>相关知识.本篇中小编将再为您讲解标题sql如何用sql语句对一个已经编辑好的表在设 ...

  9. 如何用SQL做留存率分析

    背景 APP分析中经常用到AARRR模型(海盗模型)用来分析APP的现状,其中一个重要节点就是提高留存(Acquisition),而留存率这个指标在这个阶段可以说是核心指标也不为过.那如何用SQL计算 ...

最新文章

  1. lr_save_string lr_eval_string使用介绍
  2. 运维角度浅谈MySQL数据库优化(转自:2018-03-10 李振良 JAVA高级架构)
  3. CAN总线技术 | 数据链路层04 - CAN节点状态与错误处理机制
  4. 【OpenCV】OpenCV函数精讲之 -- 感兴趣区域ROI
  5. sqlserver修改链接服务器,sqlserver怎么新建链接服务器
  6. 卷积神经网络(CNN)结尾篇:可视化跟踪(Visualize)
  7. 被罚 50 亿美元,Android 究竟招谁惹谁了?
  8. 我的世界1.14java原版命令_我的世界:老一辈mc是怎么生存的?鱼骨式挖矿,这些套路你知道吗...
  9. html5 播放加密视频播放器,.NET MVC对接POLYV——HTML5播放器播放加密视频
  10. Java、JSP基于Java的题库管理系统的设计与实现
  11. du和df命令的区别
  12. 中国工程院院士倪光南:大数据产业安全和发展需同步
  13. vc模拟 tabletpc_业力和TabletPC笔
  14. 【汇正财经】成交量的三种表达方式
  15. 第 2-3 课:迭代法计算定积分
  16. 【原创】VBA学习笔记(15)VBA的参数传递:ByVal 和 ByRef 的区别
  17. 被全球数10万顶尖程序员关注收藏!这些JavaScript项目到底强在哪里?
  18. 儿童全脑九大能力,3-6岁的家长都应该知道
  19. Linux查询一个进程是被那个启动项启动的
  20. android蓝牙温湿度,基于蓝牙的温湿度采集系统设计

热门文章

  1. 智能AI计算芯片对比
  2. mysql悬挂事务问题
  3. 洋桃开发板笔记(八 )ADC初识——模数转换
  4. 宝宝出生,为中国的13亿再添一丁
  5. C++ 图像数据翻转代码 (水平翻转 垂直翻转 对角线翻转)
  6. 阿迪达斯启用首家VR体验店,开启阿迪达斯VR营销先河
  7. 7z.001....7z.002.....格式的分卷压缩包
  8. Python连接数据库,向数据库插入数据
  9. 2008-01-10个人
  10. idea使用SVN返回历史版本