1
我想寫一個選擇聚合數據(它有一個DATETIME
列作爲ID)與理論上可能的ANY區間(如1小時,1小時和22秒, 1年和3分鐘等)。SQL Server/T-SQL:選擇一個特定的時間間隔(分組)
這個選擇應該能夠通過1小時,12分鐘,14秒聚集和應該返回3行
SELECT DATEPART(YEAR,id) as year,
DATEPART(MONTH,id) as month,
DATEPART(DAY,id) as day,
DATEPART(HOUR,id) as hour,
DATEPART(MINUTE,id) as minute,
AVG([Open]),
AVG([Close]),
AVG([Min]),
AVG([Max])
FROM QuoteHistory
where id between '2000-02-06 17:00:00.000' and '2000-02-06 20:36:42.000'
GROUP BY
DATEPART(YEAR,id),
DATEPART(MONTH,id),
DATEPART(DAY,id),
DATEPART(HOUR,id),
DATEPART(MINUTE,id)
ORDER BY 1,2,3,4,5;
我有點堅持在這裏,不能讓我的頭圍繞這個問題。對於「簡單間隔」像‘30分鐘’我可以只添加一個模
DATEPART(MINUTE,id)%2
但當間隔‘觸動’之日起超過1份,我卡住了。
任何幫助表示讚賞,thx!
我不是100%確定,但它看起來像你需要'GROUP BY ... WITH CUBE'或'GROUP BY GROUPING SETS' ...檢查http://msdn.microsoft.com/en-us /library/bb510427.aspx – a1ex07
等待,您是否希望查詢能夠通過這些持續時間的_sum_進行聚合(每小時+12分鐘+14秒),或在各個時間片中顯示聚合(每小時一行)每12分鐘排一次,每14秒排一次)? –
不,我的意思是「總和」..如上所述我希望查詢有3個結果(行) – David