<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          時(shí)間段重疊問題,如何用SQL求解?

          共 1050字,需瀏覽 3分鐘

           ·

          2020-08-04 19:09

          點(diǎn)擊關(guān)注上方“SQL數(shù)據(jù)庫(kù)開發(fā)”,

          設(shè)為“置頂或星標(biāo)”,第一時(shí)間送達(dá)干貨

          問題描述

          時(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é)集合的重疊部分就是我們要的找的。


          具體解法


          --創(chuàng)建測(cè)試數(shù)據(jù)
          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 --排除與自身時(shí)間相等的值


          結(jié)果如下:


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


          ——End——

          后臺(tái)回復(fù)關(guān)鍵字:1024,獲取一份精心整理的技術(shù)干貨
          后臺(tái)回復(fù)關(guān)鍵字:進(jìn)群,帶你進(jìn)入高手如云的交流群。
          推薦閱讀

          這是一個(gè)能學(xué)到技術(shù)的公眾號(hào),歡迎關(guān)注
          點(diǎn)擊「閱讀原文」了解SQL訓(xùn)練營(yíng)

          瀏覽 24
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产精品视频免费看 | 97人人澡 | a在线级电影网站 | 久久久久亚洲AV成人片乱码 | av久草|