我在一個按時間存儲日誌數據的數據庫中有一個表。有一天,數據庫中可能會有一百萬行。時間不是固定的時間間隔。它有幾個指標,包括時間。我想要做的是構建一個查詢,每個時間間隔將返回一行一行。例如,我可以做一個查詢,每15分鐘返回一行一天。這將返回24 * 60 = 96行。返回的每一行實際上都是請求間隔之前數據庫中最近的一行(因爲數據庫中的數據不會等於請求的間隔)。使用MySQL的時間間隔SQL查詢
我不知道該怎麼做。我不能只查詢一組特定索引和時間間隔的所有行,因爲它會將超過一千兆字節的數據加載到內存中,這太慢了。有沒有任何有效的方法來使用SQL來做到這一點。我正在使用MySQL數據庫。我會開到改變表索引的/ etc ...
TIME
11:58
12:03
12:07
12:09
12:22
12:27
12:33
12:38
12:43
12:49
12:55
如果我想從12:00查詢此爲15分鐘間隔至下午1:00,我會回來:
11:58 (nearest 12:00)
12:09 (nearest 12:15)
12:27 (nearest 12:30)
12:43 (nearest 12:45)
12:55 (nearest 1:00)
如果使它更容易,我還可以將時間存儲爲一個數字(即1970年以來的ms)。在上面的查詢中,這將是900000毫秒的時間間隔。
如果對於一個給定的時間間隔超過一排,應該使用哪個行?或者它應該是行的某種組合? – wallyk
相關:[SELECT/GROUP BY - 時間段(10秒,30秒等)](http://stackoverflow.com/questions/3086386/select-group-by-segments-of-time-10-seconds -30秒等) –
你是否需要每個間隔出現?如果沒有記錄怎麼辦?如果一條記錄最接近兩個不同的時間間隔(即11:58,12:27,1:14將會有12:14最接近12:15,12:30和12:45) –