我有一张这样的桌子:
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 Server2008。
提前感谢!
发布于 2012-08-08 07:31:45
所以你想要的查询是:
select moduleid, sum(value) as UpdatedTotalPerDay
from t
where moduleid in ( . . . )
group by moduleid这个查询有什么问题?如果你有一个模块If的索引,那么性能应该是好的。
如果这有历史记录,那么您可能还需要条件
where cast(timestamp as date) = cast(getdate() as date)https://stackoverflow.com/questions/11855520
复制相似问题