I'm trying to average data in SQL Server 2005 in a day. Here is what my database look like this if I use simple query as
SELECT timestamp, FEED
FROM ROASTER_FEED
ORDER timestamp
Data:
timestamp Feed
02/07/2011 12:00:01 1246
02/07/2011 12:00:01 1234
02/07/2011 12:00:01 1387
02/07/2011 12:00:02 1425
02/07/2011 12:00:03 1263
...
02/07/2011 11:00:01 1153
02/07/2011 11:00:01 1348
02/07/2011 11:00:01 1387
02/07/2011 11:00:02 1425
02/07/2011 11:00:03 1223
....
03/07/2011 12:00:01 1226
03/07/2011 12:00:01 1245
03/07/2011 12:00:01 1384
03/07/2011 12:00:02 1225
03/07/2011 12:00:03 1363
I don't know how to average the feed when someone select a date in a month and it give display the average/sum of that day only.
For example, in the outcome, if I select day as 02/07/2011. It would give me something like this:
02/07/2011 1234 (average value/or sum)
Well I'm not a SQL guy, but I'd expect something like:
(where @StartTime and @EndTime are parameters filled in by the calling code).
(It's not clear to me what will happen if no records are found... worth checking out.)
To get the average feed for one day you can use this.
Check out some of the tutorials from here http://www.smallsql.de/doc/sql-functions/date-time/index.html ive been looking for something simialr and found that site useful and thought it may help
try this:
it could be slow if you are handling alot of data, in this case you should considering an additional table which holds the pre-calculated values for each day.
@marc_s hit upon the preferred solution of using a computed columns to handle this but to do it on-the-fly, cast your timestamp data to shear off the time component. In my example, I cast it to a 10 character field that contains the 0 padded date.
Results in