Okay trying to construct a single query to save myself a whole bunch of time (rather than writing a ton of seperate queries), but I don’t even know how to start on this.
What I need to is look at single day and type and break out counts on actions, by hour, between 8:00am – 8:00pm. So for example I have the following fake table
TYPE_ ACTION_ TIMESTAMP_
------------------------------
A processed 2010-11-19 10:00:00.000
A processed 2010-11-19 10:46:45.000
A processed 2010-11-19 11:46:45.000
A processed 2010-11-19 12:46:45.000
A processed 2010-11-19 12:48:45.000
A pending 2010-11-19 11:46:45.000
A pending 2010-11-19 11:50:45.000
A pending 2010-11-19 12:46:45.000
A pending 2010-11-19 12:48:45.000
B pending 2010-11-19 19:48:45.000
B pending 2010-11-19 21:46:45.000
.etc
So if I wanted to look at all records with
- TYPE_ = ‘A’
- on date 2010-11-19
- grouped by ACTION_ per hour
I would see this result
ACTION_ NUMOCCURENCES RANGE
---------------------------------------------
processed 2 10:00:00 - 11:00:00
pending 0 10:00:00 - 11:00:00
processed 1 11:00:00 - 12:00:00
pending 2 11:00:00 - 12:00:00
processed 2 12:00:00 - 13:00:00
pending 2 12:00:00 - 13:00:00
Or something similar to that, but that should at least give an idea of what I am looking for.
Can anyone help? Normally I would try to provide some sample code I’m working with, but I have no idea how I would work with the group by clauses needed to make this happen.
Now, the above select statement only returns hours in which there is at least on action. In order to show a record for all hour – {processed/pending} combinations, the following amendments should be made to the query:
BTW, here’s the DDL and DML I used: