我有一個非常大的表有時間戳和值V.一些在VS的可能爲空:選擇最接近的非空值時間戳
timestamp,V
sometime_1,value1
sometime_2,value2
sometime_3,NULL
sometime_4,value4
我想查詢中選擇的V值定的時間戳T,但如果是NULL,讓我的價值在對T的兩側例如叔最接近的時候,如果我有
2010-09-01 00:00:01,v1
2010-09-01 00:00:02,v2
2010-09-01 00:00:03,NULL
2010-09-01 00:00:04,NULL
2010-09-01 00:00:05,v3
我要爲時間戳查詢「3」返回「v2」,因爲2比5更接近3,但會希望時間戳「4」的查詢返回v3,因爲5更接近。
時間不能保證是連續或者,例如,我們可能有:
2010-09-01 00:00:01,v1
2010-09-01 00:00:04,v2
2010-09-01 00:00:30,NULL
2010-09-01 00:00:42,NULL
2010-09-01 00:00:50,v3
在這種情況下,v3是最接近這兩個30和42
目前,我正在做這通過將Python連接到SQL並從相關時間戳的兩個方向啓動for循環,並返回不返回NULL的最接近的值。但是如果我可以在SQL中執行此操作,則會更清晰。我不能寫一個存儲過程;這必須是單個查詢。
我這樣做是因爲我需要給定時間戳的最接近(臨時)有效值,但有時該值對於時間戳爲NULL。
你使用的是什麼dbms?主要問題編輯爲 – jazzytomato 2014-10-18 17:22:20
。 – Tommy 2014-10-18 17:23:22