1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

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

        共 1050字,需瀏覽 3分鐘

         ·

        2020-08-04 19:09

        點(diǎn)擊關(guān)注上方“SQL數(shù)據(jù)庫開發(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)建測試數(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——

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

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

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

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            五月伊人网 | 啊啊啊好深好舒服 | 亚洲AV日韩AV无码裸体尤物 | 午夜福利影视 | 欧美性爱一级 | 啪啪啪av网站 | japanesegay筋肉失禁 | 中国三级毛片 | 日韩无码黄色视频 | 黄色电影免费看 |