我有SQL Server表名爲table1的其中有一個時間戳列column_ts和一些列說列1,列2,欄3如何在30分鐘窗口中選擇時間戳最高的行?
所以表如下所示:
column_ts column1 column2 column3
2016-09-30 00:04:00.000 number1 string1 integer1
2016-09-30 00:24:00.000 number2 string2 integer2
2016-09-30 00:29:00.000 number3 string3 integer3
2016-09-30 00:44:00.000 number4 string4 integer4
2016-09-30 00:48:00.000 number5 string5 integer5
2016-09-30 01:04:00.000 number6 string6 integer6
2016-09-30 01:24:00.000 number7 string7 integer7
2016-09-30 01:54:00.000 number8 string8 integer8
2016-09-30 01:59:00.000 number9 string9 integer9
首先,我將選擇記錄where column_ts >= 2016-09-30 00:00:00.000
。然後,我想從column_ts的每個30分鐘窗口中僅選擇一個具有最高時間戳的行。
因此,對於給定的數據,查詢應只選擇以下行:
column_ts column1 column2 column3
2016-09-18 00:29:00.000 number3 string3 integer3
2016-09-18 00:48:00.000 number5 string5 integer5
2016-09-18 01:24:00.000 number7 string7 integer7
2016-09-18 01:59:00.000 number9 string9 integer9
在某種程度上,我想使column_ts30分鐘窗戶像
1)2016-09 -30 00:00:00.000 - 2016-09-30 00:30:00.000
2)2016-09-30 00:30:00.000 - 2016-09-30 01:00:00.000
3)2016-09 -30 01:00:00.000 - 2016-09-30 01:30:00.000
4)2016-09- 30 01:30:00.000 - 2016-09-30 02:00:00.000
最後,希望從這30個分鐘窗口的每一個窗口中選擇一個具有最高值的行column_ts。
我無法弄清楚如何生成30分鐘的窗口,我可以從中選擇MAX(column_ts)
。請建議我如何做到這一點。
你能後你試一下查詢?它可以幫助我們找出你錯在哪裏? – mfredy
'終於要選擇具有從這些30分鐘windows'是如何產生的,這些對於column_ts最高值一列,看來你是簡單地生成每天30分鐘的時間間隔,還需要後期例如output.Your沒有太多明確 – TheGameiswar
請出示你的最終輸出的樣子 – TheGameiswar