我在oracle中有數據,連續數字代表不同ID的數據。在這個例子中,開始和結束是每個月依次表示的數字(1月13日是205,2月13日是206,3月13日207等)。我需要確定最長的時間段,其中最多的ID具有連續的月份數據。Oracle SQL查找最多的ID最大的島
我的表看起來像這樣:
TAB1
╔════════╦═══════╗
║ ID ║ MONTH ║
╠════════╬═══════╣
║ 111118 ║ 210 ║
║ 111118 ║ 211 ║
║ 111118 ║ 212 ║
║ 111118 ║ 213 ║
║ 111118 ║ 214 ║
║ 111118 ║ 215 ║
║ 111118 ║ 216 ║
║ 111118 ║ 217 ║
║ 111118 ║ 218 ║
║ 111118 ║ 219 ║
║ 111118 ║ 220 ║
║ 111118 ║ 221 ║
║ 111118 ║ 222 ║
║ 111118 ║ 223 ║
║ 111118 ║ 224 ║
║ 111118 ║ 225 ║
║ 111126 ║ 200 ║
║ 111126 ║ 201 ║
║ 111126 ║ 205 ║
║ 111126 ║ 206 ║
║ 111126 ║ 207 ║
║ 111126 ║ 208 ║
║ 111126 ║ 209 ║
║ 111126 ║ 210 ║
║ 111126 ║ 211 ║
║ 111126 ║ 212 ║
║ 111126 ║ 213 ║
║ 111126 ║ 214 ║
║ 111126 ║ 215 ║
║ 111126 ║ 216 ║
║ 111126 ║ 217 ║
║ 111126 ║ 218 ║
║ 111126 ║ 219 ║
║ 111126 ║ 220 ║
║ 111126 ║ 221 ║
║ 111126 ║ 222 ║
║ 111126 ║ 223 ║
║ 111126 ║ 224 ║
║ 111126 ║ 225 ║
║ 111127 ║ 211 ║
║ 111127 ║ 212 ║
║ 111127 ║ 213 ║
║ 111127 ║ 214 ║
║ 111127 ║ 215 ║
║ 111127 ║ 216 ║
║ 111127 ║ 217 ║
║ 111127 ║ 218 ║
║ 111127 ║ 219 ║
║ 111127 ║ 220 ║
╚════════╩═══════╝
我做了一個小島分析這樣的resulsts:
╔════════╦═══════╦═════╗
║ ID ║ START ║ END ║
╠════════╬═══════╬═════╣
║ 111118 ║ 210 ║ 225 ║
║ 111126 ║ 205 ║ 225 ║
║ 111126 ║ 200 ║ 201 ║
║ 111127 ║ 211 ║ 220 ║
╚════════╩═══════╩═════╝
在這個例子中最好的時間段看是,要麼
205-225 which includes 111118, 111126 or
211-220 which includes 111118, 111126, 111127
有關如何完成此任務的任何建議?
什麼開始和結束的手段?他們是幾個月? – AndreDuarte 2014-09-24 17:42:01
歡迎來到Stack Overflow!你可以發佈你的數據庫模式? – tsnorri 2014-09-24 17:44:40
開始和結束是從數據開始起依次代表每個月的數字。說Jan13是205,然後Feb13是206,March13 207等。 – 2014-09-24 17:48:20