我有一個表,如:MySQL的聯合行的條件
user | area | start | end
1 1 12 18
1 1 19 27
1 1 29 55
1 1 80 99
表示:「用戶」在「區域」出現時,從「開始」時間「端」,區域可以重疊。
我想要的是得到這樣的結果:
user | start-end
1 12-18,19-27,29-55
1 80-99
這意味着:結合與出現超過規定值的時間差較小,即(row2.start - row1.end < 10),和一個結果行代表用戶對該區域的「訪問」。 目前我可以通過使用一個sql語句比較同一表來區分每次訪問並獲得訪問次數。但我無法找到獲得上述結果的方法。 任何幫助表示讚賞。
說明:第3個出現作爲只有一個訪問鏈接在一起的,因爲:row2.start-row1.end < 10和row3.start-row2.end < 10,最後出現是一個新的訪問,因爲:80( row4.start) - 55(row3.end)> = 10。
後你已經嘗試了什麼。你能再次解釋第二排是如何產生的嗎? – fancyPants