自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL中的時(shí)間重疊問題

運(yùn)維 數(shù)據(jù)庫運(yùn)維
時(shí)間重疊指上下兩行數(shù)據(jù)的時(shí)間段有重疊部分,現(xiàn)在要找出這些在時(shí)間上有重疊的記錄。

[[435860]]

問題描述

時(shí)間重疊指上下兩行數(shù)據(jù)的時(shí)間段有重疊部分,現(xiàn)在要找出這些在時(shí)間上有重疊的記錄。

具體問題

有7個(gè)會(huì)議室,每個(gè)會(huì)議室每天都有人開會(huì),某一天的開會(huì)時(shí)間如下:

查詢出開會(huì)時(shí)間有重疊的是哪幾個(gè)會(huì)議室?上面預(yù)期結(jié)果是

ID

2

3

4

5

6

問題分析

為了方便分析,我們畫了如下一個(gè)草圖來具體描述。

圖中上面部分t和下面部分b有一段是重復(fù)的,分別是b.starttime到t.endtime部分。通過數(shù)學(xué)集合的思想,我們可以得出這個(gè)重疊部分的集合關(guān)系。

t.starttime<=b.endtime

AND t.endtime>=b.starttime

上面這個(gè)數(shù)學(xué)集合的重疊部分就是我們要的找的。

具體解法

  1. --創(chuàng)建測(cè)試數(shù)據(jù) 
  2. WITH Meeting AS
  3. SELECT 1 ID,'08:00' Starttime,'09:15' Endtime 
  4. UNION ALL 
  5. SELECT 2,'13:20','15:20' 
  6. UNION ALL 
  7. SELECT 3,'10:00','14:00' 
  8. UNION ALL 
  9. SELECT 4,'13:55','16:25' 
  10. UNION ALL 
  11. SELECT 5,'14:00','17:45' 
  12. UNION ALL 
  13. SELECT 6,'14:05','17:45' 
  14. UNION ALL 
  15. SELECT 7,'18:05','19:45'
  16.  
  17. --查詢代碼 
  18. SELECT DISTINCT b.* FROM Meeting t 
  19. JOIN Meeting b ON  
  20. t.Starttime<=b.Endtime 
  21. AND t.Endtime>=b.Starttime 
  22. AND b.ID <> t.ID --排除與自身時(shí)間相等的值 

結(jié)果如下:

 

有興趣的小伙伴可以動(dòng)手做一下,興許下次面試就遇到了。

 

責(zé)任編輯:武曉燕 來源: SQL數(shù)據(jù)庫開發(fā)
相關(guān)推薦

2010-09-06 14:17:04

SQL函數(shù)

2021-11-09 06:55:03

SQLServer排序

2021-04-09 10:37:40

SQL Server數(shù)據(jù)庫排名

2021-04-25 09:42:40

SQL遞歸SQL Server

2013-07-18 18:06:53

UITableview

2009-05-26 10:21:07

2010-08-03 09:41:14

GroupSQL Server

2014-02-19 09:51:29

iOS開發(fā)時(shí)間處理

2021-11-30 10:00:01

SQL數(shù)據(jù)重復(fù)

2023-11-02 08:38:49

遞歸SQL用法

2023-06-05 08:36:04

SQL函數(shù)RANK()

2021-04-06 11:50:30

SQL數(shù)據(jù)統(tǒng)計(jì)

2010-06-17 15:17:24

SQL Server

2021-11-03 16:00:40

SQL流量序號(hào)

2023-10-26 08:38:43

SQL排名平分分區(qū)

2010-05-06 16:02:42

Oracle SQL

2010-09-07 09:38:58

DIV重疊Firefox

2023-02-26 01:12:10

多元時(shí)間機(jī)器學(xué)習(xí)序列

2010-09-24 15:46:23

SQL查詢

2010-09-09 10:42:30

SQL函數(shù)時(shí)間
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)