我希望我能解釋這一點。SQL Server - 基於值的順序合併時間序列數據,而不是時間戳
我有不同的基於時間的讀數爲不同的業務對象。每個閱讀都有一個時間戳和一個值。每個業務對象的數據的起始實際時間對於每個對象都不相同。 (即對象1的數據在6月首次記錄,對象2的數據在8月首次記錄)
我需要做的是聚合(總和,平均等)不同對象之間的值按照讀數的順序(第一個值,第二個值)而不考慮每個值的實際時間。
所有數據點代表每個月的一個值。所以業務對象之間沒有匹配的問題。每個業務對象的第二個值比第一個值晚一個月等。等等。值的時間戳具有該月的最後一天,但這對數據的性質沒有意義。年和月是重要的。
我一直在通過加載每個業務對象的整個數據集並通過合併數據的代碼來解決這個問題。但我想知道是否有辦法通過SOL來做到這一點。
有人有想法嗎?
下面是一些數據 這裏的數據是什麼樣子
object ID Date Value
1 2010-01-31 1.0
1 2010-03-31 2.0
1 2010-04-30 3.0
2 2011-06-30 10.0
2 2011-07-31 11.0
2 2011-08-31 12.0
期望的結果將是
month Sum Average
1 11.0 5.5
2 11.0 11.0 (there is no second month for the first object)
3 13.0 6.5
4 3.0 3.0 (there is no fourth month for the second object)
原諒我的耳朵之間的具體情況,但我失去了你爲什麼*訂單*是重要的,如果你只是聚合他們?您可以發佈您擁有的數據的小例子,以及您最終希望在合併之後看到它的方式嗎?至少會幫助我。 :) –
大衛,聚合是在一個月的基礎上。對象1的第一個月的數據值與對象2的第一個月的數據,第二個月的第二個月等相結合。 – user1753352
已發佈新答案。希望這次我能正確理解。順便說一句,我認爲你在結果中有錯誤,第三行應該是:3 14.0 7.0 – Gidil