It would help if you posted a sample event, as I think you're being a needlessly complex with the timestamp wrangling. That said, what I think you should do is create a field for the day-hour and a field for the day, then throw in a couple of eventstats to get the average per day. Here's a run anywhere example
| gentimes start=01/01/2017 end=12/30/2017 increment=1h
| eval dow_hour=strftime(starttime,"%a-%H"), dow=strftime(starttime,"%a")
| fields dow dow_hour
| eventstats count as total_events
| eventstats count(eval(match(dow_hour,"00"))) as dows by dow
| eval avg=total_events/dows
| stats count as events_by_dow_hour max(avg) as average_events_by_dow max(dows) as dows max(total_events) by dow_hour dow
These will more or less all be the same because I've just done one event per hour - but throw that at your data and you should see something relevant. Note eventstats can get hairy on large events sets - you may be better off appending multiple stats searches together. If the result set is not to large its perfectly safe.
... View more