的我有一個表是這樣的:SQL Server查詢檢索最新記錄一組給定的ID
ModuleID TimeStamp Value TotalPerDay
1 8/5/2012 9:00 PM 0.25 0.25
2 8/5/2012 9:00 PM 0.15 0.15
3 8/5/2012 9:00 PM 0 0
4 8/5/2012 9:00 PM 1.25 1.25
1 8/5/2012 10:00 PM 0.05 0.30
3 8/5/2012 10:00 PM 0.89 0.89
4 8/5/2012 10:00 PM 0.14 1.39
4 8/5/2012 11:00 PM 0.70 2.09
4 8/5/2012 12:00 PM 0.43 2.52
...
而且我有15000個模塊更新此表每隔一小時。另外,在午夜,TotalPerDay
值得到重置。
我正在努力處理一個查詢,該查詢應該爲給定的一組ModuleID
提供最新的TotalPerDay
值。
我嘗試使用上ModuleID
一個GROUP BY
條款。但是,如何在不使用聚合函數的情況下獲取最新的TotalPerDay
值?
順便說一句,我使用的SQL Server提前2008
謝謝!
這正是我所需要的。謝謝。 – usp 2012-08-07 23:59:03
嘿,我都嘗試你的查詢,它似乎像第二個作品比第一快!這是爲什麼? – usp 2012-08-08 16:40:29
那麼,它們是完全不同的;第一查詢應該返回每個模塊每天最後一個條目,由CTE(如一個子查詢),並用加入選擇的。第二個查詢應返回每個模塊每天所有總計的總和,並且只包含一個帶有聚合的select語句。基本上,第一個查詢更復雜,應該花費大約兩倍的時間。 – 2012-08-08 18:58:47